Yii2 queue extension: multiple queue channels/tubes for a single queue server

1.2k Views Asked by At

I’d like to use Yii2-queue extension. In my project I use Beanstalk and I have more than 100 different queue channels/tubes. What is the correct way to use more than one queue channel/tube for a single queue server?

It does not seem right to me to add 100+ queue components in common/config/main.php with the same configuration where only channel/tube name would differ.

main.php:

...
'mainQueue' => [
    'class' => 'yii\queue\beanstalk\Queue',
    'tube'  => 'mainQueue',
],
'secondQueue' => [
    'class' => 'yii\queue\beanstalk\Queue',
    'tube'  => 'secondQueue',
],
'thirdQueue' => [
    'class' => 'yii\queue\beanstalk\Queue',
    'tube'  => 'thirdQueue',
],
'fourthQueue' => [
    'class' => 'yii\queue\beanstalk\Queue',
    'tube'  => 'fourthQueue',
],
'webhookQueue' => [
    'class' => 'yii\queue\beanstalk\Queue',
    'tube'  => 'webhookQueue',
],
'workerDataQueue' => [
    'class' => 'yii\queue\beanstalk\Queue',
    'tube'  => 'workerDataQueue',
],
'userEventsQueue' => [
    'class' => 'yii\queue\beanstalk\Queue',
    'tube'  => 'userEventsQueue',
],
...
0

There are 0 best solutions below