jadamavecool / laravel-azure-servicebus
扩展Laravel队列以支持Microsoft Azure Service Bus队列和主题(php 7.4)
Requires
- php: >=7.1.10
- illuminate/container: >=8.0.0 <9.0.0
- illuminate/encryption: ^8.65
- illuminate/queue: >=8.0.0 <9.0.0
- illuminate/support: >=8.0.0 <9.0.0
- microsoft/windowsazure: *
This package is auto-updated.
Last update: 2024-09-20 01:54:21 UTC
README
概览
该库支持Service Bus队列和基于主题的消息传递(主题尚未测试,但应该可以工作)。默认是Service Bus队列,对于基于主题的消息传递,应将UseTopic设置为true。该包应在Laravel > 5.6上自动发现。
安装
在您的 composer.json 中要求此包
"Jadamavecool-software/laravel-azure-servicebus": "<<version>>"
运行composer update!
在composer update完成后,您需要将ServiceProvider添加到您的 app/config/app.php 中的 providers 数组中(此操作仅适用于laravel < 5.6)
'Jadamavecool\LaravelAzureServicebusTopic\Support\Serviceprovider',
在 app/config/queue.php 中的 connection 数组中添加以下内容,并使用从Azure管理门户获取的自己的连接数据填写
'azureservicebus' => array(
'driver' => 'azureservicebus',
'endpoint' => 'https://*.servicebus.windows.net',
'SharedAccessKeyName' => '',
'SharedAccessKey' => 'primary key',
'queue' => '<topic name>',
'UseTopic' => true/false (default false)
)
使用方法
该库支持Service Bus队列和基于主题的消息传递。默认是Service Bus队列,对于基于主题的消息传递,应将UseTopic设置为true。配置完成后,您可以使用Laravel队列API。如果您不知道如何使用队列API,请参阅官方Laravel 文档。
从Laravel队列文档中,以下内容应该可以工作
$payload = new \stdClass(); $payload->id = 1; $payload->name = 'hello world'; ProcessPodcast::dispatch($payload)->onConnection('azureservicebus')->onQueue('queue-name');
根据Laravel官方文档启动artisan worker
php artisan queue:listen azureservicebus --queue=queue-name
Azure主题支持
(尚未)不支持在Azure主题上自动创建订阅。而是使用已知的订阅标识符用于订阅,需要在服务总线上手动创建。该标识符为 6c7dd8f3e3e145a5b9782b41d741c951
版本兼容性
该包使用语义版本控制并尝试匹配Laravel版本。
- 如果您在Laravel 5.5上,请使用版本2.x
- 如果您在Laravel 5.6-5.8上,请使用版本5.x
- 如果您在Laravel 6.x上,请使用版本6.x
- 如果您在Laravel 7.x上,请使用版本7.x
- 如果您在Laravel 8.x上,请使用dev-master(请参阅以下兼容性说明)
Laravel 8x支持
[警告-] 此包依赖于已废弃的Windows-Azure SDK for PHP,该SDK已停止更新两年。这导致不兼容的依赖关系(特别是与GuzzleHttp - see #2)。我们已决定分支windows-azure包,仅保留Service Bus的部分。由于分支尚未发布(还有一些单元测试失败,需要验证它们是因无效测试用例还是因功能损坏而失败),将此包包含在Laravel 8.x中的唯一方法是使用dev-master composer.json
"repositories": [{ "type": "git", "url": "https://github.com/sn123/azure-sdk-for-php.git" }], "require: { ... "Jadamavecool-software/laravel-azure-servicebus": "dev-master" },
其余部分应与较旧的Laravel相同。