mariopenterman / phpenqueue-azure-service-bus

v1.1.5 2020-03-30 12:37 UTC

This package is auto-updated.

Last update: 2024-09-29 05:42:36 UTC


README

Azure 服务总线传输是一个使用与 Queue Interop 兼容的 Azure 服务总线作为消息代理的消息解决方案传输。

Build Status Quality Gate Status

该传输使用 Azure 服务总线 作为消息代理。它在那里创建一个集合(一个队列或主题)。它是一个先入先出(FIFO)系统。

安装

  • 使用 composer
$ composer require assoconnect/phpenqueue-azure-service-bus

创建上下文

<?php
use WindowsAzure\Common\ServicesBuilder;

// connects to azure
$connectionString = "Endpoint=[yourEndpoint];SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=[Primary Key]";

$serviceBusRestProxy = ServicesBuilder::getInstance()->createServiceBusService($connectionString);

$context = $factory->createContext();

向主题发送消息

<?php
/** @var \Enqueue\AzureStorage\AzureStorageContext $context */

$fooTopic = $context->createTopic('aTopic');
$message = $context->createMessage('Hello world!');

$context->createProducer()->send($fooTopic, $message);

向队列发送消息

<?php
/** @var \Enqueue\AzureStorage\AzureStorageContext $context */

$fooQueue = $context->createQueue('aQueue');
$message = $context->createMessage('Hello world!');

$context->createProducer()->send($fooQueue, $message);

发送过期消息

<?php
/** @var \Enqueue\AzureStorage\AzureStorageContext $context */
/** @var \Enqueue\AzureStorage\AzureStorageDestination $fooQueue */


$message = $context->createMessage('Hello world!');

$context->createProducer()
    ->setTimeToLive(60000) // 60 sec
    ->send($fooQueue, $message)
;

消费消息

<?php
/** @var \Enqueue\AzureStorage\AzureStorageContext $context */

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

$message = $consumer->receiveNoWait();

// process a message

$consumer->acknowledge($message);
//$consumer->reject($message);

删除队列(清除消息)

<?php
/** @var \Enqueue\AzureStorage\AzureStorageContext $context */

$fooQueue = $context->createQueue('aQueue');

$context->deleteQueue($fooQueue);

删除主题(清除消息)

<?php
/** @var \Enqueue\AzureStorage\AzureStorageContext $context */

$fooTopic = $context->createTopic('aTopic');

$context->deleteTopic($fooTopic);

返回索引