assoconnect / enqueue-azure
消息队列 Azure 存储传输
v1.1.1
2019-11-19 12:14 UTC
Requires
- php: ^7.1.3
- enqueue/enqueue: ^0.9.0@dev
- microsoft/azure-storage-queue: ^1.1
- queue-interop/queue-interop: ^0.7|^0.8
Requires (Dev)
- enqueue/null: 0.9.x-dev
- enqueue/test: 0.9.x-dev
- phpunit/phpunit: ~5.4.0
- queue-interop/queue-spec: 0.6.x-dev
README
Azure 存储传输是一种消息解决方案传输,它使用 Azure 与 队列互操作 兼容。
该传输使用 Azure 存储 作为消息代理。它在那里创建一个集合(一个队列或主题)。它是一个先进先出(FIFO)系统。
安装
- 使用 composer
$ composer require assoconnect/enqueue-azure
创建上下文
<?php use Enqueue\AzureStorage\AzureStorageConnectionFactory; // connects to azure $factory = new AzureStorageConnectionFactory('DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<youraccountkey>'); $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);