- 1.可配置参数:子进程pop队列个数,队列job个数临界值(启动动态进程和消息提醒),最大执行时间;
- 2.修复workerMinNum和workerMaxNum相同时,不启动动态worker进程;
- 1.之前子进程退出过于频繁,现在子进程改为一小时再退出,while死循环执行队列任务,直到超出一小时最大执行时间;
- 2.避免子进程频繁创建和退出,提高性能;
- 3.详情参考代码:https://github.com/kcloze/swoole-jobs/blob/master/src/Process.php#L130
- 出现积压队列情况,支持钉钉机器人等消息提醒;
- 支持status状态显示命令;
- 静态子进程可能重启失败,增强日志记录;
- worker子进程支持个数可以根据队列挤压情况动态变化;
- worker子进程最大和最小启动个数可配置;
- 子进程启动模式变更:单独给每个topic启动对应数量的子进程,杜绝不同topic之间相互影响
- 增加exit启动参数,默认stop等待子进程平滑退出
- 重构自身和第三方框架装载类实现,降低耦合性;
- 支持Yii和Phalcon主流框架
- topics支持根据key值排序,队列根据这个排序优先消费;
- 优化启动流程,让PHP进程自身管理,移除服务管理脚本;
- 重构代码,优化结构;
by daydaygo
- 优化 TopicQueue 实现:
TopicQueueInterface -> BaseTopicQueue -> XxxTopicQueue
- 优化 job run() 方式, 增加类静态方法实现, 并实现多参数输入
- 使用依赖注入方式进行解耦, 比如
Jobs
类依赖BaseTopicQueue
抽象类, 不和具体的TopicQueue
实现耦合; 比如配置的解耦,Jobs
类只用关系自己业务相关的配置, 不用耦合其他配置 - 添加 php 进行服务管理
- 增加使用systemd管理swoole服务,实现故障重启、开机自启动等功能