За последние 24 часа нас посетили 17399 программистов и 1603 робота. Сейчас ищут 989 программистов ...

Как работает onQueue() в очередях Laravel?

Тема в разделе "Laravel", создана пользователем xintrea, 23 апр 2019.

  1. xintrea

    xintrea Активный пользователь

    С нами с:
    25 фев 2019
    Сообщения:
    68
    Симпатии:
    0
    Что-то читаю документацию, и не могу понять.

    При помещении задачи в очередь, можно через метод onQueue('queueName') указать текстовый идентификатор очереди. Но нигде не написано, где эти идентификаторы задаются/настраиваются.

    Правильно ли я понимаю, что этот идентификатор задается произвольным образом, и нигде не нужно настраивать перечень доступных идентификаторов очередей?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
  3. xintrea

    xintrea Активный пользователь

    С нами с:
    25 фев 2019
    Сообщения:
    68
    Симпатии:
    0
    Я не пойму. Вот как описывается коннекция и очередь:

    Код (Text):
    1.  
    2. 'connections' => [
    3.  
    4.         'low' => [
    5.             'driver' => 'database',
    6.             'table' => 'jobs',
    7.             'queue' => 'low',
    8.             'retry_after' => 90,
    9.         ],
    10. ...
    То есть, для одной коннекции low можно создать только одну очередь low. Получается, что для создания тематической очереди, например, 'email', нужно создавать отдельную коннекцию?

    Но в то же время, в документации написано, примерный перевод: "... любое заданное соединение может иметь несколько «очередей», которые могут рассматриваться как разные стеки или группы заданий...". Но в синтаксисе описания коннекций и очередей я не вижу возможности задать для одной коннекции больше чем одной очереди.

    Вот этот момент и непонятен.
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Есть соединения используемые для очередей, а есть сами очереди. Конфиг очередей подробно не рассмотрен.
    Вот описание очереди, а ниже там уже описание соединений с используемыми для хранения и обработки задач сервисами:
    PHP:
    1. return [
    2.     /*
    3.     |--------------------------------------------------------------------------
    4.     | Default Queue Driver
    5.     |--------------------------------------------------------------------------
    6.     |
    7.     | Laravel's queue API supports an assortment of back-ends via a single
    8.     | API, giving you convenient access to each back-end using the same
    9.     | syntax for each one. Here you may set the default queue driver.
    10.     |
    11.     | Supported: "sync", "database", "beanstalkd", "sqs", "redis", "null"
    12.     |
    13.     */
    14.     'default' => env('QUEUE_DRIVER', 'sync'),