balpom/symfony-messenger-sample

一个简单示例,展示如何初始化和使用带有队列的 Symfony Messenger

v1.2.2 2024-06-08 13:28 UTC

This package is auto-updated.

Last update: 2024-09-08 14:04:29 UTC


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 的执行。