balpom / symfony-messenger-sample
一个简单示例,展示如何初始化和使用带有队列的 Symfony Messenger
v1.2.2
2024-06-08 13:28 UTC
Requires
- php: >=8.1
- php-di/php-di: >=7.0
- symfony/cache: >=6.4
- symfony/console: >=6.4
- symfony/doctrine-messenger: >=6.4
- symfony/event-dispatcher: >=6.4
- symfony/messenger: >=6.4
README
一个简单示例,展示如何初始化和使用带有队列的 Symfony Messenger。
没有找到一个简单且完整的 Symfony Messenger 使用示例,即使对新手来说也很容易理解,我不得不花几天时间自己创建它。它使用 Doctrine 与 sqlite 数据库作为消息总线传输。运行工作者的方式是使用 Symfony Console。所有测试都在 Linux 上进行。
需求
- PHP >= 8.1
安装
使用 composer(推荐)
composer create balpom/symfony-messenger-sample
如何使用
简单测试
打开控制台窗口。运行以下命令:
php bin/console messenger:consume doctrine-async
它启动了一个简单的 Worker,该 Worker 模拟发送短信。现在它正在等待从队列中发送消息,而队列仍然是空的。
打开另一个控制台窗口。运行以下命令:
php tests/send.php
它运行一个简单的脚本来将几条消息添加到队列中。之后,在第一个控制台窗口中,您可以看到 Worker 正在“发送”短信。
运行以下命令:
php bin/console messenger:stop-workers
它停止 Worker 的执行。
高级测试
打开多个控制台。在每个控制台中,运行以下命令:
php bin/console messenger:consume doctrine-async
它启动了许多简单的 Worker,这些 Worker 模拟发送短信。现在它正在等待从队列中发送消息,而队列仍然是空的。
打开另一个控制台窗口。运行以下命令:
php tests/sendmany.php
它运行一个简单的脚本来将多条消息添加到队列中。之后,在之前打开的控制台中,您可以看到多个 Worker 正在“发送”短信。
运行以下命令:
php bin/console messenger:stop-workers
它停止所有 Worker 的执行。