因实际项目需求,需要一些在后台长时间运行一些比较耗时的任务,e.g:邮件,app推送消息,报表生成..,寻了几种方案swoole,php-resque,workman,最终选择了
php-resque,比较喜欢Ta的设计简洁清晰,足够轻量,能满足目前的大部分需求
设计思想
导读
php-resque 的设计思想来源于 Ruby 的项目 resque,这是各种语言实现版本,更多文档请查阅官方文档
设计思路&角色划分
Worker 执行者
负责将redis 队列中的 Job取出,并调用执行指定的 Job(Class),同时负责维护 Job 状态;
一个Worker可以处理多个队列,可以开启多个worker加快处理速度
Queue 队列
队列通过 redis 队列实现,
Job 任务
一个Job就是一个需要在后台需要执行的任务,在php-resque的实现中,一个Class就是一个Job