因实际项目需求,需要一些在后台长时间运行一些比较耗时的任务,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