becklyn/messaging

0.1.2 2021-12-03 11:24 UTC

This package is auto-updated.

Last update: 2024-08-29 06:01:38 UTC


README

becklyn/messaging 提供了异步消息传递的技术无关抽象。

🚧 目前仅提供 Redis 后端!

安装

composer require becklyn/messaging

入门指南

使用 MessageBuilder 创建消息。默认情况下,基于 Symfony Serializer 有一个 JSON Builder。可以使用 Publisher 发布消息。

$builder = new SymfonyJsonSerializedMessageBuilder($serializer);
$message = $builder->build("content", "destination");

$publisher = new Publisher($connection, $serializer);
$publisher->publish($message);

消费消息与发布消息一样简单。为此,库提供了一个 Consumer。与 Worker 一起,可以在消息投递时处理消息。

class SampleWorker implements Worker
{
    public function execute(Message $message) : void
    {
        // TODO: Process the received message ...
        \var_dump($message);
    }
}
$queue = new QueueDefinition("destination");
$params = new ConsumerParams();

$consumer = new Consumer($connection, $serializer, $lifecycleManager);
$consumer->consume(new SampleWorker(), $queue, $params);