Драйвер работает с очередью на базе Beanstalk.
Пример настройки:
return [
'bootstrap' => ['queue'],
'components' => [
'queue' => [
'class' => \zhuravljov\yii\queue\Queue::class,
'driver' => [
'class' => \zhuravljov\yii\queue\beanstalk\Driver::class,
'host' => 'localhost',
'port' => 11300,
'tube' => 'queue',
],
],
],
];
Для выполнения задач используются консольные команды.
yii queue/run
Команда run
в цикле извлекает задания из очереди и выполняет их, пока очередь не опустеет, и
завершает свою работу. Это способ подойдет для обработки очереди заданий через cron.
yii queue/listen [delay]
Команда listen
запускает обработку очереди в режиме демона. Очередь опрашивается непрерывно.
Если добавляются новые задания, то они сразу же извлекаются и выполняются. delay
- время ожидания
в секундах перед следующим опросом очереди. Способ наиболее эфективен если запускать команду через
демон-супервизор, например supervisord
.