TP5的消息队列与Laravel的消息队列比较相似,下面是与laravel 中的消息队列的一些对比:
| thinkphp-queue (v1.1.2) | laravel-queue (v5.3) | |
|---|---|---|
| 内置的驱动 | Database,Redis,Sync,TopThink | Database,Redis, Sync(在laravel中称为 null)。 |
| Redis驱动要求 | 安装redis的C扩展 | 安装 predis 包 + LUA脚本 |
| 推送任务 | 允许推送 消费者类名,消费者对象 | 允许推送消费者类名,消费者对象,闭包 |
| 失败任务处理 | 触发失败回调事件 (有Bug) | 触发失败回调事件 + 移动任务到 failed_jobs表? |
| 消息订阅 | subscribe 命令+ Topthink驱动(注:未实现/未提供) | subscribe 命令 + 安装IronMQ 驱动 |
| 删除任务 | 消费者类中手动删除 | 任务完成后自动删除 |
| 推送到多个队列 | 需自己实现 | 原生支持 |
| 延迟执行 | 支持 (有Bug) | 支持 |
| 消息重发 | 支持 | 支持 |
| 检查已执行次数 | 原生支持 | 需在消费者类中显式 use 相关的 trait |
| 执行方式 | work 模式 + listen 模式 | work 模式 + listen 模式 |
| 进程命令 | 开启,停止,重启 | 开启,停止,重启 |
| 任务命令 | 无 | 展示失败任务列表,重试某个失败任务,删除某个失败任务 |
| 支持的事件 | 失败回调事件 | 失败回调事件,支持消费前事件,消费后事件 |

