Чтобы ограничить количество заданий, приходящих из моей очереди, я ввел некоторый код в свой файл заданий PHP.После того, как задание отправлено, я некоторое время сплю:
// random nr between 3 and 4 min
$r = rand(180, 240);
sleep($r);
Очередь, которую я использую, - это очередь SQS FIFO, и отправленные задания туда идут нормально.Мой работник использует только один процесс и пытается 3 раза:
more aws-worker.conf
command=php /var/www/html/website/artisan queue:work sqs_aws --sleep=5 --tries=3
autostart=true
autorestart=true
user=root
numprocs=1
Однако, когда я отправляю 2 задания, работник очереди освобождает их примерно через 1 минуту, но не удаляет их в SQS.Таким образом, они остаются в полете и через 3 раза получают метку сбоя:
[2018-12-23 13:21:54] Processing: App\Jobs\DispatchAwsGatewayJob
[2018-12-23 13:22:56] Processing: App\Jobs\DispatchAwsGatewayJob
[2018-12-23 13:27:55] Processing: App\Jobs\DispatchAwsGatewayJob
[2018-12-23 13:29:01] Processing: App\Jobs\DispatchAwsGatewayJob
[2018-12-23 13:34:00] Processing: App\Jobs\DispatchAwsGatewayJob
[2018-12-23 13:35:06] Processing: App\Jobs\DispatchAwsGatewayJob
[2018-12-23 13:40:05] Processing: App\Jobs\DispatchAwsGatewayJob
[2018-12-23 13:40:05] Failed: App\Jobs\DispatchAwsGatewayJob
[2018-12-23 13:41:10] Processing: App\Jobs\DispatchAwsGatewayJob
[2018-12-23 13:41:10] Failed: App\Jobs\DispatchAwsGatewayJob
Некоторые другие подробности очереди:
Default Visibility Timeout: 30 seconds
Message Retention Period: 4 days
Receive Message Wait Time: 0 seconds
Возможно, неактивный код мешает очереди fifo?У меня нет других возможностей ограничить количество заданий в очереди ....