Драйвер для Redis
=================

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

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

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

```php
return [
    'bootstrap' => [
        'queue', // Компонент регистрирует свои консольные команды 
    ],
    'components' => [
        'redis' => [
            'class' => \yii\redis\Connection::class,
            // ...
        ],
        'queue' => [
            'class' => \yii\queue\redis\Queue::class,
            'redis' => 'redis', // Компонент подключения к Redis или его конфиг
            'channel' => 'queue', // Ключ канала очереди
        ],
    ],
];
```

Консоль
-------

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

```sh
yii queue/listen [timeout]
```

Команда `listen` запускает обработку очереди в режиме демона. Очередь опрашивается непрерывно.
Если добавляются новые задания, то они сразу же извлекаются и выполняются. `timeout` - время
ожидания задания из очереди перед следующей итерацией. Способ наиболее эфективен если запускать
команду через [supervisor](worker.md#supervisor) или [systemd](worker.md#systemd).

```sh
yii queue/run
```

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

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

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

```sh
yii queue/info
```

Команда `info` выводит информацию о состоянии очереди.

```sh
yii queue/clear
```

Команда `clear` делает полную очистку очереди.

```sh
yii queue/remove [id]
```

Команда `remove` удаляет задание из очереди.
