Можем ли мы иметь несколько таблиц заданий для каждой очереди в laravel.? - PullRequest
1 голос
/ 17 октября 2019

Я знаю, что у нас может быть несколько очередей, совместно использующих одну таблицу базы данных. Но я пытаюсь сделать так, чтобы каждая очередь имела свою собственную таблицу заданий в базе данных. Если мы можем сделать это, пожалуйста, покажи мне, как.

Я уже пытался поместить несколько записей базы данных в config / queue.php под соединениями, как показано в коде.

'database' => [
            'driver' => 'database',
            'table' => 'jobs',
            'queue' => 'run_script',
            'retry_after' => 90,
        ],
'database' => [
            'driver' => 'database',
            'table' => 'que',
            'queue' => 'notify',
            'retry_after' => 90,
        ],

Все, что я получаю, - обе очереди (notify и run_script)отправляется на стол que. :( Я хочу, чтобы очередь notify отправлялась в таблицу que, тогда как очередь run_script отправлялась в таблицу jobs.

Заранее спасибо ...

1 Ответ

0 голосов
/ 17 октября 2019

Это старый пост, но я верю, что смогу решить вашу проблему: http://laravel.at.jeffsbox.eu/laravel-5-queues-multiple-queues

Вы можете настроить конфигурацию своей очереди примерно так:

'connections' => [

        'table1' => [
            'driver' => 'database',
            'table' => 'TABLE1',
            'queue' => 'table1',
            'retry_after' => 90,
        ],

        'table2' => [
            'driver' => 'database',
            'table' => 'table2',
            'queue' => 'normal',
            'retry_after' => 90,
        ],

        'table3' => [
            'driver' => 'database',
            'table' => 'TABLE3',
            'queue' => 'table3',
            'retry_after' => 90,
        ],
],

И затем отправить работувы просто делаете:

$job = (new SomeJob())->onQueue('table1');
dispatch($job);

onQueue ('queue_name') позволяет вам выбрать любую очередь (и в вашей таблице дел), которую вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...