skip to Main Content

This is my config/queue.php

 'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => 'default',
        'retry_after' => 90,
    ],
    'long_run' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => 'default',
        'retry_after' => 3600,
    ],

This is my config/horizon.php

 'environments' => [
    'production' => [
        'supervisor-1' => [
            'connection' => 'redis',
            'queue' => ['default'],
            'balance' => 'simple',
            'processes' => 10,
            'tries' => 1,
        ],
    ],

    'local' => [
        'supervisor-1' => [
            'connection' => 'redis',
            'queue' => ['default'],
            'balance' => 'simple',
            'processes' => 3,
            'tries' => 1,
        ],
    ],
],

This is the code I run on my controller, after I do php artisan horizon. It kinda feels like it redirects to the first connection instead, as it exactly times me out after 90 seconds, instead of 3600. I did try php artisan config:cache and restarted horizon, but still the issue persists

 dispatch(new doSomethingJob($path,auth()->user()))->onConnection('long_run');

Changing retry_after on my redis connection will fix the issue, but is not my desired result.

2

Answers


  1. Chosen as BEST ANSWER

    Solution: https://stackoverflow.com/a/64040705/15182404 Seems like I forgot to add the supervisor

        'supervisor-long-running' => [
                    'connection' => 'long_run',
                    'queue' => 'default',
                    'balance' => 'simple',
                    'processes' => 3,
                    'tries' => 1,
                    'timeout' => 86000 // should be shorter than retry_after out
    ]
    

  2. I thought you had to set the driver before calling the dispatch. Can you try :

    $job = (new Job(…))->onQueue('driver');
    $this->dispatch($job);
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search