According to the Laravel docs I should be able to specify a job specific timeout:
If the timeout is specified on the job, it will take precedence over any timeout specified on the command line [...]
So, when I run artisan queue:listen
without the --timeout
option and I define the timeout inside the job (like Laravel tells me to):
public $timeout = 600;
I expect the timeout of that specific job to be 600 seconds. Unfortunately, I still get a ProcessTimedOutException
. A custom timeout only works when I run the queue with --timeout=600
.
I'm using Laravel 6 with PHP 7.4. As recommended by Laravel I've also enabled the pcntl
PHP extension. For the queue I use the database
driver with the following config:
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'retry_after' => 90,
]