Laravel 队列的阿里云消息服务(MNS)驱动。
composer require milkmeowo/laravel-mns
1.在 config/app.php 注册 ServiceProvider(Laravel 5.5 无需手动注册)
'providers' => [
// ...
Milkmeowo\LaravelMns\LaravelMnsServiceProvider::class,
],
2.在 config/queue.php
中增加 mns
配置:
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'expire' => 60,
],
// 新增阿里云 MNS。
'mns' => [
'driver' => 'mns',
'key' => env('QUEUE_MNS_ACCESS_KEY', ''),
'secret' => env('QUEUE_MNS_SECRET_KEY', ''),
'endpoint' => env('QUEUE_MNS_ENDPOINT', ''),
'queue' => env('QUEUE_NAME',''),
'wait_seconds' => env('QUEUE_WAIT_SECONDS', 30),
],
],
3.在 .env
增加
QUEUE_DRIVER=mns
QUEUE_NAME=your_queue_name
QUEUE_MNS_ACCESS_KEY=your_acccess_key
QUEUE_MNS_SECRET_KEY=your_secret_key
QUEUE_MNS_ENDPOINT=your-endpoint
# 关于 wait_seconds 可以看 https://help.aliyun.com/document_detail/35136.html
QUEUE_WAIT_SECONDS=30
正常使用 Laravel Queue 即可:
php artisan queue:mns:list
// 例如
php artisan queue:mns:list
// 输入队列名以 prefix 开头的队列
php artisan queue:mns:list -p
# 请填写prefix:
# >
php artisan queue:mns:create 队列名
// 例如
php artisan queue:mns:create wechat-notify
php artisan queue:mns:delete 队列名
// 例如
php artisan queue:mns:delete wechat-notify
php artisan queue:mns:show 队列名
// 例如
php artisan queue:mns:show wechat-notify
php artisan queue:mns:flush 队列名
// 例如
php artisan queue:mns:flush wechat-notify
$ composer test
MIT