按照手冊去做,下載安裝 粘貼代碼
運行以后在redis客戶端里可以看到消息投遞成功了,但是在消費里面打印得日志沒有任何東西,是不是沒有消費成功,可是也沒有任何報錯,搞不懂問題出在哪里
<?php
return [
'default' => [
'host' => 'redis://120.0.0.1:6379',
'options' => [
'auth' => '', // 密碼,字符串類型,可選參數(shù)
'db' => 0, // 數(shù)據(jù)庫
'prefix' => '', // key 前綴
'max_attempts' => 5, // 消費失敗后,重試次數(shù)
'retry_seconds' => 5, // 重試間隔,單位秒
]
],
];
<?php
return [
'consumer' => [
'handler' => Webman\RedisQueue\Process\Consumer::class,
'count' => 8, // 可以設置多進程同時消費
'constructor' => [
// 消費者類目錄
'consumer_dir' => app_path() . '/queue/redis'
]
]
];
<?php
namespace app\controller;
use support\Request;
use support\Log;
use Webman\RedisQueue\Redis;
class Index
{
public function queue(Request $request)
{
// 隊列名
$queue = 'send-mail';
// 數(shù)據(jù),可以直接傳數(shù)組,無需序列化
$data = ['to' => 'tom@gmail.com', 'content' => 'hello'];
// 投遞消息
Redis::send($queue, $data);
// 投遞延遲消息,消息會在60秒后處理
// Redis::send($queue, $data, 10);
return response('redis queue test');
}
}
<?php
namespace app\queue\redis;
use support\Log;
use Webman\RedisQueue\Consumer;
class MyMailSend implements Consumer
{
// 要消費的隊列名
public $queue = 'send-mail';
// 連接名,對應 plugin/webman/redis-queue/redis.php 里的連接`
public $connection = 'default';
// 消費
public function consume($data)
{
// 無需反序列化
Log::info($data); // 輸出 ['to' => 'tom@gmail.com', 'content' => 'hello']
}
}
redis-queue有配置文件要啟動要配置你關聯(lián)的消費文件,不然你怎么消費```php
'consumer' => [
'handler' => Webman\RedisQueue\Process\Consumer::class,
'count' => 4, // 可以設置多進程同時消費
'constructor' => [
// 消費者類目錄
'consumer_dir' => app_path() . '/queue'
]
]