Драйвер для Redis

Этот драйвер для хранения очереди заданий использует Redis.

В приложении должно быть установлено расширение yiisoft/yii2-redis.

Пример настройки:

return [
    'components' => [
        'queue' => [
            'class' => \zhuravljov\yii\queue\Queue::class,
            'driver' => [
                'class' => \zhuravljov\yii\queue\redis\Driver::class,
                'redis' => 'redis', // ID подключения
                'channel' => 'queue', // Ключ канала очереди
            ],
        ],
    ],
];

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

yii queue/run

Команда run в цикле извлекает задания из очереди и выполняет их, пока очередь не опустеет, и завершает свою работу. Это способ подойдет для обработки очереди заданий через cron.

yii queue/listen

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