Increasing Craft's Queue TTR

If you're seeing an error that looks something like this...

The process "'/usr/local/bin/php' './craft' 'queue/exec' '123456789' '300' '1' '11' '--verbose=1' '--interactive=' '--color='" exceeded the timeout of 300 seconds

...then chances are you're hitting Craft's default 300 second time-to-run (TTR) queue limit. Fortunately, there's a couple ways you can increase it.

Via your config/app.php #

To change the default TTR of all jobs, add the following to your config/app.php, or merge it with any other existing config:

return [
 'components' => [
 'queue' => [
 'ttr' => 600

Specify the TTR when enqueueing the job #

If the job in question is enqueued by your own custom PHP code, then you should be able to specify the TTR when the job is enqueued

$myJob = new MyJob();

Define a getTtr() method #

Finally, if your Job class implements RetryableJobInterface then you should be able to define a getTtr method which returns a numerical TTL.

class MyJob extends \craft\queue\BaseJob implements RetryableJobInterface
 public function getTtr()
 return 600;