kcloze/swoole-jobs源码分析

所需php扩展

https://github.com/alanxz/rab...
amqp 须要先安装rabbitmq-c
swoole
redisphp

源码难度:

易于理解,便于修改git

主要使用知识点:

swooleprocess
swoole定时器
信号通讯
github

使用难度:

简单, 易于嵌入框架redis

发现问题:

查看github仓库, 该代码已经半年没有更新,新的swoole版本中,process是没法在swooletimer中使用,由于swooletimer中会自动建立coroutine,而process没法在协程中建立api

解决方法:

  1. 在入口文件增长 (已测试)

swoole_async_set([安全

'enable_coroutine' => false

]);swoole

  1. 修改process为协程 (未测试)

稳定性:

源码中有一段注释:
//黑科技:实践中发现有可能进不到业务代码,形成消息丢失,job执行太快或者太慢(业务出现异常),worker进程都安全退出
本身测试中, 开启了3个redis队列
https://www.showdoc.cc/server...框架

测试结果: 推送3000条数据

最小进程数符合预期
最大进程数符合预期
结果无丢失async

执行效率

受限于redis队列以及job任务测试

相关文章
相关标签/搜索