csburton / enqueue-azure
消息队列 Azure 存储传输
v1.1.2
2023-03-20 09:23 UTC
Requires
- php: ^7.1.3|^8.0
- enqueue/enqueue: ^0.9|^0.10
- microsoft/azure-storage-queue: ^1.1
- queue-interop/queue-interop: ^0.7|^0.8
Requires (Dev)
- enqueue/null: 0.9.x-dev|0.10.x-dev
- enqueue/test: 0.9.x-dev|0.10.x-dev
- phpunit/phpunit: 8.*
- queue-interop/queue-spec: ^0.6@dev
This package is auto-updated.
Last update: 2024-09-20 13:02:50 UTC
README
Azure 存储传输是一个基于 Azure 的消息解决方案传输,与Queue Interop 兼容。
传输使用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);