queue-interop/queue-interop

促进消息队列对象之间的互操作性。基于Java JMS

1.0.0-alpha2 2018-11-22 17:53 UTC

README

Latest Stable Version Monthly Downloads Total Downloads License

关于

queue-interop 尝试为PHP程序识别和标准化创建、发送、接收和读取MQ消息的通用方式,以实现互操作性。

通过讨论和试验,我们试图创建一个标准,它由通用接口和推荐组成。

如果提供队列实现的PHP项目开始采用这些通用标准,那么使用MQ的PHP应用程序和项目就可以依赖这些通用接口,而不是特定的实现。这促进了高度互操作性和灵活性,使用户可以消费任何可以适应这些接口的MQ传输实现。

本项目的工作未获得PHP-FIG的官方认可。我们遵循PHP-FIG的精神和理念。

安装

您可以通过Composer安装此包

# Install a Queue Interop compatible transport, for example 
$ composer require enqueue/fs

示例

发送消息

<?php

use Enqueue\Fs\FsConnectionFactory;

$context = (new FsConnectionFactory())->createContext();

$context->createProducer()->send(
    $context->createQueue('aQueue'), 
    $context->createMessage('aBody')
);

消费消息

<?php

use Enqueue\Fs\FsConnectionFactory;

$context = (new FsConnectionFactory())->createContext();

$consumer = $context->createConsumer($context->createQueue('aQueue'));

$timeout = 5000; // 5sec
if ($message = $consumer->receive($timeout)) {
    // process the message.

    $consumer->acknowledge($message);
}

更多信息请在此处查看

兼容的项目

项目

实现

Amqp interop

存在AMQP interop,它基于Queue Interop构建。它与queue interop完全兼容,并仅添加了一些AMQP特定功能

  • Queue\Exchange 声明
  • Queue\Exchange 绑定。
  • 基本消费支持。
  • 以及其他AMQP特定功能。

兼容的项目

工作流程

欢迎每个人加入并贡献。

我们尝试通过创建新接口而不是编辑现有接口来避免破坏BC。

虽然我们目前专注于接口开发,但我们对于任何可能有助于互操作性的东西都持开放态度,无论是代码、最佳实践等。

许可证

MIT许可证