jadamavecool/laravel-azure-servicebus

扩展Laravel队列以支持Microsoft Azure Service Bus队列和主题(php 7.4)

dev-master 2022-10-19 21:35 UTC

This package is auto-updated.

Last update: 2024-09-20 01:54:21 UTC


README

概览

该库支持Service Bus队列和基于主题的消息传递(主题尚未测试,但应该可以工作)。默认是Service Bus队列,对于基于主题的消息传递,应将UseTopic设置为true。该包应在Laravel > 5.6上自动发现。

Latest Stable Version Total Downloads License

安装

在您的 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相同。