Laravel队列:工作不能快速处理作业

Laravel队列:工作不能快速处理作业,laravel,queue,amazon-sqs,Laravel,Queue,Amazon Sqs,我使用Laravel和AWS SQS连接运行队列。队列正在使用Linux上的supervisord或Windows上的服务运行。用于运行队列进程的命令如下所示: 队列:工作sqs——睡眠=12——尝试=3 我看到从应用程序调度作业到队列工作者处理作业之间有相当大的时间延迟(从15秒到2分钟) 注意,在应用程序中,作业的调度没有任何延迟设置: DocumentProcessor::dispatch($document) 最初,我在AWS上的Windows服务器上注意到了这种行为。稍后在AWS上的L

我使用Laravel和AWS SQS连接运行队列。队列正在使用Linux上的supervisord或Windows上的服务运行。用于运行队列进程的命令如下所示:

队列:工作sqs——睡眠=12——尝试=3

我看到从应用程序调度作业到队列工作者处理作业之间有相当大的时间延迟(从15秒到2分钟)

注意,在应用程序中,作业的调度没有任何延迟设置:

DocumentProcessor::dispatch($document)

最初,我在AWS上的Windows服务器上注意到了这种行为。稍后在AWS上的Linux服务器上也会观察到同样的情况。两台服务器都处理不同类型的作业。所以,它似乎与作业或服务器无关,但更一般

在AWS队列监视器上,我看到传递没有延迟(0延迟)。我还经常看到每分钟有五(5)条空消息被处理(这意味着睡眠时间为12秒意味着每分钟有五(60/12)条消息)。所以看起来队列工作正常

在日志中也没有发现异常或错误

是否存在导致处理作业延迟的任何其他设置?(队列配置或AWS上的任何默认设置。)


由于排队工人的睡眠时间,我预计最大延迟为12秒。但是延迟15到2分钟是不可取的。

如果有人回到这篇文章来回答上述问题,请通读AWS上的文档。短轮询(接收消息等待时间=0)可能导致延迟。