Этот драйвер для хранения очереди заданий использует Redis.
В приложении должно быть установлено расширение yiisoft/yii2-redis
.
Пример настройки:
return [
'components' => [
'queue' => [
'class' => \zhuravljov\yii\queue\Queue::class,
'driver' => [
'class' => \zhuravljov\yii\queue\redis\Driver::class,
'redis' => 'redis', // ID подключения
],
],
],
];
Для выполнения задач используются консольные команды.
yii queue/run channel
Команда run
в цикле извлекает задания из очереди и выполняет их, пока очередь не опустеет, и
завершает свою работу. channel
- выбранный канал. Это способ подойдет для обработки очереди
заданий через cron.
yii queue/listen channel [delay]
Команда listen
запускает обработку очереди в режиме демона. Очередь опрашивается непрерывно.
Если добавляются новые задания, то они сразу же извлекаются и выполняются. channel
- выбранный
канал. delay
- время ожидания в секундах перед следующим опросом очереди. Способ наиболее
эфективен если запускать команду через демон-супервизор, например supervisord
.
yii queue/purge channel
Команда purge
чистит очередь из выбранного канала channel
.