队列使用的一些说明
获取帮助
php think queue:work --help
--queue[=QUEUE] The queue to listen on --daemon Run the worker in daemon mode --delay[=DELAY] Amount of time to delay failed jobs [default: 0] --force Force the worker to run even in maintenance mode --memory[=MEMORY] The memory limit in megabytes [default: 128] --sleep[=SLEEP] Number of seconds to sleep when no job is available [default: 3] --tries[=TRIES] Number of times to attempt a job before logging it failed [default: 0] -h, --help Display this help message -V, --version Display this console version -q, --quiet Do not output any message --ansi Force ANSI output --no-ansi Disable ANSI output -n, --no-interaction Do not ask any interactive question -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
php think queue:+指令
指令:
queue:restart 队列重启 queue:work 队列执行 queue:listen 队列监听 queue:subscribe 队列订阅
后台遍历执行:
php think queue:work --daemon #或者 php think queue:listen
queue:work --daemon和queue:listen的区别
queue:work --daemon 在修改job下面的代码后需要重启服务,利用的是缓存方式(相当于常驻内存),速度非常高效!!!推荐。
queue:listen 修改job下面代码实时生效,每次都会重新载入框架,相对来说更消耗性能,调试时使用或者不行经常重启时采用
php think queue:work --daemon --queue abc_queue &
参数说明
& 后台运行
--daemon 是否循环执行,如果不加该参数则该命令处理完下一个消息就退出。
--queue abc_queue 要处理的队列的名称
--delay 0 如果本次任务执行抛出异常且任务未被删除时,设置其下次执行前延迟多少秒,默认为0。
--force 系统处于维护状态时,是否仍然处理任务,并未找到相关说明。
--memory 128 该进程允许使用的内存上限,以M为单位。
--sleep 3 如果队列中无任务则sleep多少秒后重新检查(work+daemon模式)或退出(listen或非daemon模式)
--tries 2 如果任务已经超过尝试次数上限,则触发“任务尝试数超限”事件,默认为0。