Php Symfony 4-如果队列不存在,如何创建队列

Php Symfony 4-如果队列不存在,如何创建队列,php,rabbitmq,amqp,symfony4,Php,Rabbitmq,Amqp,Symfony4,我在Symfony 4应用程序中使用它与RabbitMQ通信 # config/packages/messenger.yaml framework: messenger: transports: new_orders: '%env(MESSENGER_TRANSPORT_DSN)%new_orders' orders_progress: '%env(MESSENGER_TRANSPORT_DSN)%orders_progress' routin

我在Symfony 4应用程序中使用它与RabbitMQ通信

# config/packages/messenger.yaml

framework:
messenger:
    transports:
        new_orders: '%env(MESSENGER_TRANSPORT_DSN)%new_orders'
        orders_progress: '%env(MESSENGER_TRANSPORT_DSN)%orders_progress'

    routing:
        'App\ValueObject\Message\OrderMessage': new_orders
        'App\ValueObject\Message\OrderProgressMessage': orders_progress
命令中的用法(只是一个片段):

我在Docker容器中运行应用程序。如果我从头开始启动它,RabbitMQ是空的。如果我在开发模式下运行命令
php/orders/bin/console-app:collect-orders
,队列将自动创建。但是,如果我在prod模式下运行它,那么队列永远不会被创建,并且命令会因为“队列未找到”错误而崩溃

我的临时解决方案是在docker compose运行时开始时使用
-e dev
参数调用一次命令,这不是很好

如果队列不存在,有人知道如何创建它吗

# src/Command/CollectOrdersCommand.php
class CollectOrdersCommand extends Command
{
    public function __construct(MessageBusInterface $queue);

    protected function execute(InputInterface $input, OutputInterface $output): void
    {
        $msg = new OrderMessage();
        $this->queue->dispatch($msg);
    }
}