命令模式
- queue:subscribe 命令
- queue:work 命令work 命令: 该命令将启动一个 work 进程来处理消息队列。
# php think queue:work --queue 队列名称
- queue:listen listen 命令: 该命令将会创建一个 listen 父进程 ,然后由父进程通过
proc_open(‘php think queue:work’)
的方式来创建一个work 子 进程来处理消息队列,且限制该work进程的执行时间。
# php think queue:listen --queue 队列名称
命令行参数
- Work 模式
php think queue:work \
--daemon // 是否循环执行,如果不加该参数,则该命令处理完下一个消息就退出
--queue 队列的名称 // 要处理的队列的名称
--delay 0 \ // 如果本次任务执行抛出异常且任务未被删除时,设置其下次执行前延迟多少秒,默认为0
--force \ // 系统处于维护状态时是否仍然处理任务,并未找到相关说明
--memory 128 \ // 该进程允许使用的内存上限,以 M 为单位
--sleep 3 \ // 如果队列中无任务,则sleep多少秒后重新检查(work+daemon模式)或者退出(listen或非daemon模式)
--tries 2 // 如果任务已经超过尝试次数上限,则触发‘任务尝试次数超限’事件,默认为0
- Listen 模式
php think queue:listen \
--queue 队列的名称 \ // 监听的队列的名称
--delay 0 \ // 如果本次任务执行抛出异常且任务未被删除时,设置其下次执行前延迟多少秒,默认为0
--memory 128 \ // 该进程允许使用的内存上限,以 M 为单位
--sleep 3 \ // 如果队列中无任务,则多长时间后重新检查,daemon模式下有效
--tries 0 \ // 如果任务已经超过重发次数上限,则进入失败处理逻辑,默认为0
--timeout 60 // 创建的work子进程的允许执行的最长时间,以秒为单位
Linux启动守护进程:
# nohup php think queue:work --daemon --queue 任务名称 &
# nohup php think queue:work --daemon --queue 任务名称 &
Linux查看任务数量:
# jobs -l