kcloze/swoole-jobs源码分析
所需php扩展
https://github.com/alanxz/rab...
amqp 需要先安装rabbitmq-c
swoole
redis
源码难度:
易于理解,便于修改
主要使用知识点:
swooleprocess
swoole定时器
信号通信
等
使用难度:
简单, 易于嵌入框架
发现问题:
查看github仓库, 该代码已经半年没有更新,新的swoole版本中,process是无法在swooletimer中使用,因为swooletimer中会自动创建coroutine,而process无法在协程中创建
解决方法:
- 在入口文件增加 (已测试)
swoole_async_set([
'enable_coroutine' => false
]);
- 修改process为协程 (未测试)
稳定性:
源码中有一段注释:
//黑科技:实践中发现有可能进不到业务代码,造成消息丢失,job执行太快或者太慢(业务出现异常),worker进程都安全退出
自己测试中, 开启了3个redis队列
https://www.showdoc.cc/server...
测试结果: 推送3000条数据
最小进程数符合预期
最大进程数符合预期
结果无丢失
执行效率
受限于redis队列以及job任务
相关推荐
似水流年梦 2020-08-09
JamesRayMurphy 2020-07-26
lizzysnow 2020-07-18
willowwgx 2020-07-18
xilove0 2020-07-09
云端漂移 2020-07-05
hnyzyty 2020-07-05
heavenautumn 2020-06-21
netuser 2020-06-14
淡风wisdon大大 2020-06-06
巴壁虎 2020-05-30
RocketJ 2020-05-28
tanrong 2020-05-20
heniancheng 2020-05-15