このドライバは RabbitMQ のキューによって動作します。
amqp interop 互換のトランスポート、
例えば enqueue/amqp-lib
パッケージを必要とします。
利点:
amqp interop 互換のトランスポートであれば、何でも動作します。例えば、
構成例:
return [
'bootstrap' => [
'queue', // コンポーネントが自身のコンソール・コマンドを登録します
],
'components' => [
'queue' => [
'class' => \yii\queue\amqp_interop\Queue::class,
'port' => 5672,
'user' => 'guest',
'password' => 'guest',
'queueName' => 'queue',
'driver' => yii\queue\amqp_interop\Queue::ENQUEUE_AMQP_LIB,
// または
'dsn' => 'amqp://guest:guest@localhost:5672/%2F',
// または、上記と同じ
'dsn' => 'amqp:',
],
],
];
キューに入れられたジョブを実行するためにコンソール・コマンドが使用されます。
yii queue/listen [timeout]
listen
コマンドが無限にキューを調べ続けるデーモンを起動します。キューに新しいタスクがあると、即座に取得され、実行されます。
timeout
パラメータはキューを調べる間のスリープの秒数を指定するものです。
このコマンドを supervisor または systemd によって適切にデーモン化するのが、
最も効率的な方法です。