当前位置: 首页 > 后端技术 > PHP

kcloze-swoole-jobs源码分析

时间:2023-03-29 16:09:29 PHP

需要php扩展https://github.com/alanxz/rab...amqp需要安装rabbitmq-cswooleredis源码难点:易懂易修改主要知识点:swooleprocessswooletiming设备信号通信等使用难点:简单,容易嵌入到框架中发现问题:查看github仓库,代码半年没更新,在新的swoole版本中,进程无法使用在swooletimer中,由于swooletimer会自动创建协程,而进程无法在协程中创建解决方法:在入口文件中添加(已测试)swoole_async_set(['enable_coroutine'=>false]);修改进程为协程(未测试)稳定性:源码中有注释://黑科技:实践中发现有可能进入业务代码失败,导致消息丢失,job执行过快或过慢(业务异常),worker进程安全退出。测试中开启了3个redis队列https://www.showdoc.cc/server...测试结果:推送了3000条数据。最小进程数符合预期。最大进程数符合预期。没有损失。执行效率受限于redis队列和作业任务。