Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Yii2 Queue Laravel Package

yiisoft/yii2-queue

Yii2 Queue runs tasks asynchronously via pluggable queue backends: DB, Redis, RabbitMQ/AMQP, Beanstalk, ActiveMQ, and Gearman. Define jobs as classes implementing JobInterface and push them to the queue for background processing.

View on GitHub
Deep Wiki
Context7

AMQP Interop драйвер

Драйвер работает с очередью RabbitMQ.

Чтобы он работал в проект нужно добавить amqp interop транспорт, например пакет enqueue/amqp-lib.

Возможности:

  • Транспорты совместимые с amqp interop:
  • Приоритеты заданий
  • Отложенное выполнение
  • Поддерживается TTR
  • Повторное выполнение после неудачных попыток
  • Опции: vhost, connection_timeout, qos_prefetch_count и т.д.
  • Защищенное подключение к брокеру (SSL)
  • DSN: amqp:, amqps: или amqp://user:pass@localhost:1000/vhost

Пример конфига:

return [
    'bootstrap' => [
        'queue', // Компонент регистрирует свои консольные команды
    ],
    'components' => [
        'queue' => [
            'class' => \yii\queue\amqp_interop\Queue::class,
            'port' => 5672,
            'user' => 'guest',
            'password' => 'guest',
            'queueName' => 'queue',
            'driver' => yii\queue\amqp_interop\Queue::ENQUEUE_AMQP_LIB,
            // или
            'dsn' => 'amqp://guest:guest@localhost:5672/%2F',
            // или
            'dsn' => 'amqp:',
        ],
    ],
];

Консоль

Для обработки очереди используются консольные команды.

yii queue/listen

Команда listen запускает обработку очереди в режиме демона. Очередь опрашивается непрерывно. Если добавляются новые задания, то они сразу же извлекаются и выполняются. Способ наиболее эфективен если запускать команду через supervisor или systemd.

Для команды listen доступны следующие опции:

  • --verbose, -v: состояние обработки заданий выводится в консоль.
  • --isolate: каждое задание выполняется в отдельном дочернем процессе.
  • --color: подсветка вывода в режиме --verbose.

Работа с заголовками в сообщениях

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

Например:

$queue = Yii::$app->queueTest;
$queue->setMessageHeaders = [
    'header1' => 'header-value1',
    'header2' => 'header-value2',
];
$queue->push(new TestJob());

Обратите внимание! Существующие заголовки не будут перезаписаны по умолчанию.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle