バージョン
Laravel Framework 10.45.1
Laravelの queue:retry はソースコードの変更は反映される1けどtimeout
の設定が反映されなかったって話
事象
実装したJobがタイムアウトしてfailed_jobsに入っていた
namespace App\Jobs;
class MyCustomJob implements ShouldQueue
{
use Dispatchable;
use InteractsWithQueue;
use Queueable;
use SerializesModels;
public int $timeout = 100;
...
Jobのタイムアウト設定を変更して
public int $timeout = 600;
リトライしたけど、やはりタイムアウトしてしまう
php artisan queue:retry {uuid}
原因
failed_jobs.payload
{
"uuid": "c2805ac5-75ef-4e15-b2ba-a92ba4365785",
"displayName": "App\\Jobs\\MyCustomJob",
"job": "Illuminate\\Queue\\CallQueuedHandler@call",
"maxTries": null,
"maxExceptions": null,
"failOnTimeout": false,
"backoff": null,
"timeout": 100,
"retryUntil": null,
"data": {
}
...
!!!
"timeout": 100,
解決
failed_jobs.payload
のjson内のtimeout値を書き換えてからretryする
以上
-
キューワーカーのリスタートはする必要がある ↩