Laravel 队列:工作不会快速处理工作

时间:2021-05-27 13:30:16

标签: laravel queue amazon-sqs

我正在使用 Laravel 运行队列并具有 AWS SQS 连接。该队列在 Linux 上使用 supervisord 或作为服务在 Windows 上运行。用于运行队列进程的命令如下:

queue:work sqs --sleep=12 --tries=3

我看到了相当长的时间延迟(从 15 秒到 2 分钟),从应用程序分派作业到队列工作器处理作业。

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

DocumentProcessor::dispatch( $document );

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

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

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

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

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

0 个答案:

没有答案