Redis ドライバ

このドライバはキューのデータを保存するのに Redis を使います。

使用するためには yiisoft/yii2-redis エクステンションをアプリケーションに追加しなければなりません。

構成例:

return [
    'bootstrap' => [
        'queue', // コンポーネントが自身のコンソール・コマンドを登録します
    ],
    'components' => [
        'redis' => [
            'class' => \yii\redis\Connection::class,
            // ...

            // 接続がタイムアウトした後の接続再試行回数
            // yiisoft/yii2-redis が 2.0.7 以降の場合はこれが必要
            'retries' => 1,
        ],
        'queue' => [
            'class' => \yii\queue\redis\Queue::class,
            'redis' => 'redis', // Redis 接続コンポーネントまたはその構成情報
            'channel' => 'queue', // キュー・チャンネル・キー
        ],
    ],
];

コンソール

キューに入れられたジョブの実行と管理のためにコンソール・コマンドが使用されます。

yii queue/listen [timeout]

listen コマンドは無限にキューを調べ続けるデーモンを起動します。キューに新しいタスクがあると、即座に取得され、実行されます。 timeout パラメータはキューを調べる間のスリープの秒数を指定するものです。 このコマンドを supervisor または systemd によって適切にデーモン化するのが、 最も効率的な方法です。

yii queue/run

run コマンドは、キューが空になるまでループして、タスクを取得し、実行します。 cron に向いた方法です。

run および listen のコマンドは下記のオプションを持っています。

  • --verbose, -v: 実行の状態をコンソールに表示します。
  • --isolate: すべてのタスクが独立した子プロセスで実行されます。
  • --color: 饒舌モードでハイライトを有効にします。
yii queue/info

info コマンドはキューの状態について情報を表示します。

yii queue/clear

clear コマンドはキューをクリアします。

yii queue/remove [id]

remove コマンドはキューからジョブを削除します。