thinkphp队列的超时问题。

今天线上发现一个导出订单的功能失败了,由于是用队列的脚本实现的,看了下日志发现队列的进程老是自动的退出,我就怀疑是这个导出的任务导致的,手动执行了下,发现是由于导出的数据比较多,执行时间比较长,超出了默认的60S的限制,现在就是看怎么能调整下这个超时时间。报错具体如下。

[Symfony\Component\Process\Exception\ProcessTimedOutException]  
The process “‘/usr/local/php/bin/php’ ‘think’ ‘queue:work’ ‘redis’ ‘–once’ ‘–queue=default’ ‘–delay=0’ ‘–memory=128’ ‘–sleep=3’ ‘–tries=0′” exceeded the     timeout of 60 seconds.

 看了下队列的实现,中其中找到了这段。

看能接收一个参数 timeout,于是就果断的传入一下参数,测试下,发现问题解决了。
命令如下:php think –queue –timeout=300 –tries=3

You May Also Like