Symfony 版本:4.3.2
PHP:7.2.20
我正在尝试将信使组件与学说传输异步使用。我在composer require messenger
Symfony Flex 的帮助下安装了 Messenger。
我已经MESSENGER_TRANSPORT_DSN=doctrine://default
在.env.local
. 在 messenger 配置中,传输也被配置:
framework:
messenger:
transports:
async: '%env(MESSENGER_TRANSPORT_DSN)%'
routing:
'App\Message\SomeNotification': async
在控制器中发送消息时,$this->dispatchMessage(new SomeNotification('some content'));
一切都很好。教义传输表messenger_messages
自动创建,消息正确保存在表中。
当尝试使用消息时,./bin/console messenger:consume async
我收到以下错误:
[Symfony\Component\Debug\Exception\FatalThrowableError]
Argument 2 passed to Symfony\Component\Messenger\Worker::__construct() must implement interface Symfony\Component\Messenger\MessageBusInterface, string given, called in ..../vendor/symfony/messenger/
Command/ConsumeMessagesCommand.php on line 190
所以里面的 $routeableBusSymfony\Component\Messenger\Command\ConsumeMessagesCommand
是空的,这会导致在实例化 Worker 时崩溃。