教育类网站建站,微信二维码在线制作,网站添加验证码,广告的六种广告形式来源所在部门领导答应另一个部门领导解决业务上的一些问题#xff0c;刚好是我负责。由于各总原因#xff0c;没过试用期#xff0c;领导需要我离职了#xff0c;跟另一个部门领导确认后#xff0c;就在离职前 2 天加个班#xff0c;交付了已经完成的部分。大概 2 个月后…来源所在部门领导答应另一个部门领导解决业务上的一些问题刚好是我负责。由于各总原因没过试用期领导需要我离职了跟另一个部门领导确认后就在离职前 2 天加个班交付了已经完成的部分。大概 2 个月后前同事找我说要继续做剩下的部分。项目内容其实就是把已经在用的 ERP ( Oracle 数据库) 对接简道云的 API包括推送数据到简道云和从简道云接收表单数据两个部分而 ERP 这块是没有源代码进行二次开发的只能修改下数据库存储过程。由于时间限制在职时交付的代码主要目的是验证可行性完成剩余部分的功能需要做一些重构。做了一个分两阶段交付的计划首先是重构基础代码再来交付添加新功能的代码。数据推送之前有做过一个 Laravel 项目用的 Laravel Queue 加上数据库作为队列存储。因为 Lavael Queue 的实现是轮询表然后代码维护了队列各种逻辑觉得不够优雅 :doge:加上这次需要用 Python 来实现所以要另找办法。仔细查了 Oracle 的官方文档之后发现有个 Advanced Queue 功能另外还顺便查了下 SQL Server 的 Service Broken 也有个 Message Queue并且两者都有 CDC 功能。因为不需要收集所有变化的数据所以就不用 CDC 了。实现思路是由存储过程将定义好结构的 Message Object push 到 Queuepython 代码获取并转换结构推送到指定的 API。整个过程是异步的不会增加事务耗时队列的有序、可靠性、重试直接用数据库自带机制就能实现。坑坑总是避不掉的这里新旧坑都说一下。数据库时区数据库用的是 UTC0 时区但 ERP 客户端应用处理业务数据都是把时间当本地时间看的也就是整个 ERP 系统的时间其实是错的还不能去修正。长连接无法保持本来 Advanced Queue 是可以做成监听模式但是我发现无法保持长连接并且还不会报错问了下才知道服务器那边数据库实例随时可能会重启之类的。没办法改成轮询模式并且每次都主动打开关闭连接。因为简道云 API 的请求频率限制性能影响这点可以忽略。部署到 Windows开始做的时候说了是要部署到 Linux结果临交付了说要弄到 Windows 上。Windows 服务器(附带 360 全家桶)根本就没更新过缺少 VC 库需要的补丁安装不了 Python3.6 依赖的 VC 库运行不了 Python3.6 考虑直接使用系统更新功能需要安装的补丁太多怕更新失败服务器就起不来只能查补丁依赖列表手动安装 VC 库需要的补丁。简道云 API 更新了准备验收结款了简道云 API 更新了:doge:不过不是兼容问题只是增加了部门成员查询接口。最开始做的时候随口说过的话把自己坑了——这个功能是 API 不支持否则肯定给你们做。加了个部门成员信息定时同步到本地数据库的功能然后我觉得反正做都做了就再加了个企业微信通知推送报错信息后面出问题好查一些。结果因为自己也觉得应该把之前的事情做完预计 5 个工作日不会很肝所以报价 3000最终交付完成总计 3 周(仅工作日)。超期的原因拯救艾泽拉斯各个阶段交付时不能影响正在运行的业务反馈需要有等待时间需求变化需求增加总结术士不配拯救艾泽拉斯(已 A )下次别给自己加戏了吃饭要紧事后抽空重构了一个版本加上了 SQL Server 的支持不过总的来说实际意义不大毕竟应用场景太小众而收集分析数据 CDC 方式更合适。另外还可以 Message Queue 触发存储过程实现一些业务或者单机实现异步执行存储过程不过互联网应用应该是不存在对数据库编程强依赖的场景依旧用处不大。不过如果你刚好有 SQL Server 或者 Oracle 需要通过数据库触发 API 之类的需求还是可以参考一下的。