Thursday, March 2, 2017

Laravel Redis Queue Timeout 60s

I am running queue workers using supervisor as such:

[program:queue]
process_name=%(program_name)s_%(process_num)02d
command=php artisan queue:work --timeout=600 --queue=high,low
user=forge
numprocs=8
directory=/home/forge/default
stdout_logfile=/home/forge/default/storage/logs/supervisor.log
redirect_stderr=true

I got my queue using redis configured as such:

'default' => 'redis',

'redis' => [
            'driver' => 'redis',
            'connection' => 'default',
            'queue' => 'low',
            'expire' => 600,
        ],

For some reasons, after 60s my job ends (I get a notification). But actually I can see that the job is still running in the background (some script execution generating files).

Then I get a notification every 60s that my job is done until it's completed (3-4 mins).

Tried to --timeout=0 (to test) and the problem it still there. I also tried to add public $timeout = 600; to my job class, no luck. I restart my workers everytime.

What am I missing here?



via Wistar

Advertisement