姚静伟/laravel-mns

阿里云MNS队列驱动For Laravel

v1.0.10 2017-04-09 11:06 UTC

This package is not auto-updated.

Last update: 2024-09-21 14:55:57 UTC


README

Latest Version on Packagist Software License Total Downloads

安装

通过Composer

$ composer require lokielse/laravel-mns

配置

将以下服务提供者添加到你的config/app.php文件中的providers数组

Lokielse\LaravelMNS\LaravelMNSServiceProvider::class

编辑你的config/queue.php,添加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' => 30,
]

关于wait_seconds,请参阅此处

编辑你的.env文件

QUEUE_DRIVER=mns
QUEUE_NAME=foobar-local
QUEUE_MNS_ACCESS_KEY=your_acccess_key
QUEUE_MNS_SECRET_KEY=your_secret_key
QUEUE_MNS_ENDPOINT=http://12345678910.mns.cn-hangzhou.aliyuncs.com/

在生产模式下,你应该更新QUEUE_MNS_ENDPOINT内部端点

用法

首先在阿里云MNS控制台创建一个队列并获取队列端点

然后更新.env中的MNS_ENDPOINT

向队列推送测试消息

Queue::push(function($job){
	/**
	 * Your statments go here
	 */
	$job->delete();
});

创建队列监听器,在终端运行命令

$ php artisan queue:listen

命令

在阿里云上刷新MNS消息

$ php artisan queue:mns:flush

安全性

阿里云RAM控制台创建RAM访问控制

  1. 创建一个自定义策略,例如AliyunMNSFullAccessFoobar

    {
      "Version": "1",
      "Statement": [
    	{
    	  "Action": "mns:*",
    	  "Resource": [
    		"acs:mns:*:*:*/foobar-local",
    		"acs:mns:*:*:*/foobar-sandbox",
    		"acs:mns:*:*:*/foobar-production"
    	  ],
    	  "Effect": "Allow"
    	}
      ]
    }
    
  2. 为你的应用创建一个用户,例如foobar

  3. 将策略AliyunMNSFullAccessFoobar分配给用户foobar

  4. 为用户foorbar创建和获取AccessKeyIdAccessKeySecret

  5. .env中更新QUEUE_MNS_ACCESS_KEYQUEUE_MNS_ACCESS_SECRET

变更日志

请参阅CHANGELOG以获取更多最近更改的信息。

测试

$ composer test

贡献

请参阅CONTRIBUTINGCONDUCT以获取详细信息。

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。