think-queue 基础命令
命令 | 说明 |
---|---|
queue:failed | 列出所有失败的队列作业 |
queue:failed-table | 创建记录失败的队列作业表 |
queue:flush | 删除所有失败的队列作业 |
queue:forget | 删除一个失败的队列作业 |
queue:listen | 监听执行指定的队列 |
queue:restart | 在执行当前作业后重新启动队列工作守护进程 |
queue:retry | 重试失败的队列作业 |
queue:table | 为队列作业数据库表创建迁移 |
queue:work | 处理队列中的下一个作业 |
queue:failed
列出所有失败的队列作业
php think queue:failed
+----+------------+---------+--------------------------------------------------+---------------------+
| ID | Connection | Queue | Class | Fail Time |
+----+------------+---------+--------------------------------------------------+---------------------+
| 37 | redis | default | app\common\job\TaskAttach@updateOtherSubsidy | 2023-07-07 17:19:43 |
| 36 | redis | default | app\common\job\TaskAttach@updateOtherSubsidy | 2023-07-07 16:15:26 |
queue:failed-table
创建记录失败的队列作业表,表名为 queue.php
配置文件中 failed.table
设置的名称。
依赖 think-migration
库,如果没安装,则会提示 Install think-migration first please
,可使用 composer require topthink/think-migration
命令安装。
php think queue:failed-table
Migration created successfully!
queue:table
创建队列作业表,表名为 queue.php
配置文件中 connections.database.table
设置的名称。
php think queue:table
queue:flush
删除所有失败的队列作业记录
php think queue:flush
All failed jobs deleted successfully!
queue:forget
删除一个失败的队列作业记录
参数
名称 | 必须 | 说明 |
---|---|---|
id | 是 | 队列作业记录的ID |
使用示例
php think queue:forget 123
All failed jobs deleted successfully!
queue:retry
重新发布失败的作业
参数
名称 | 必须 | 说明 |
---|---|---|
id | 是 | 队列作业记录的ID |
使用示例
重新发布指定作业
php think queue:retry 123 124 125
重新发布所有作业
php think queue:retry all
queue:listen
监听执行指定的队列
参数
名称 | 必须 | 说明 |
---|---|---|
connection | 否 | 队列的连接名称,默认为queue.php 中的 default 配置 |
选项
名称 | 必须 | 默认 | 说明 |
---|---|---|---|
--queue | 否 | null | 要监听的队列名称,默认为连接配置中的queue |
--delay | 否 | 0 | 延迟失败作业的时间(单位:秒) |
--memory | 否 | 128 | 作业内存限制(单位:M) |
--timeout | 否 | 60 | 作业执行时间限制(单位:秒) |
--sleep | 否 | 3 | 获取作业前的等待时间(单位:秒) |
--tries | 否 | 0 | 失败重试次数,超过该次数则变为失败作业,不再执行(单位:次) |
使用示例
php think queue:listen database --queue=default --delay=10 --memory=128 --timeout=60 --sleep=3 --tries=0
queue:work
处理队列中的下一个作业
参数
名称 | 必须 | 说明 |
---|---|---|
connection | 否 | 队列的连接名称,默认为queue.php 中的 default 配置 |
选项
名称 | 必须 | 默认 | 说明 |
---|---|---|---|
--queue | 否 | null | 要监听的队列名称,默认为连接配置中的queue |
--once | 否 | 只处理队列中的下一个作业 | |
--delay | 否 | 0 | 延迟失败作业的时间(单位:秒) |
--force | 否 | 即使在维护模式下也强制工作人员运行 | |
--memory | 否 | 128 | 作业内存限制(单位:M) |
--timeout | 否 | 60 | 作业执行时间限制(单位:秒) |
--sleep | 否 | 3 | 获取作业前的等待时间(单位:秒) |
--tries | 否 | 0 | 失败重试次数,超过该次数则变为失败作业,不再执行(单位:次) |
使用示例
php think queue:work database --queue=default --once --delay=10 --force --memory=128 --timeout=60 --sleep=3 --tries=0