This driver works with RabbitMQ queues.
It requires an amqp interop compatible
transport, for example the enqueue/amqp-lib
package.
Advantages:
It works with any amqp interop compatible transports, such as
Configuration example:
return [
'bootstrap' => [
'queue', // The component registers its own console commands
],
'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,
// or
'dsn' => 'amqp://guest:guest@localhost:5672/%2F',
// or, same as above
'dsn' => 'amqp:',
],
],
];
A console command is used to execute queued jobs.
yii queue/listen [timeout]
The listen
command launches a daemon which infinitely queries the queue. If there are new tasks
they're immediately obtained and executed. The timeout
parameter specifies the number of seconds to sleep between
querying the queue. This method is most efficient when the command is properly daemonized via
supervisor or systemd.