使用redis隊(duì)列插件遇到bug
http://www.wtbis.cn/plugin/12
同時(shí)發(fā)送兩條消息,設(shè)置一個(gè)消費(fèi)進(jìn)程,會(huì)丟消息?
process配置
'redis_consumer_fast' => [
'handler' => Webman\RedisQueue\Process\Consumer::class,
'count' => 2,
'constructor' => [
// 消費(fèi)者類目錄
'consumer_dir' => app_path() . '/queue/redis/fast'
]
],
'redis_consumer_slow' => [
'handler' => Webman\RedisQueue\Process\Consumer::class,
'count' => 1,
'constructor' => [
// 消費(fèi)者類目錄
'consumer_dir' => app_path() . '/queue/redis/slow'
]
]
消費(fèi)者
class TestSlow implements Consumer
{
// 要消費(fèi)的隊(duì)列名
public string $queue = 'test-slow';
// 連接名,對(duì)應(yīng) plugin/webman/redis-queue/redis.php 里的連接`
public string $connection = 'default';
// 消費(fèi)
public function consume($data)
{
var_dump("-------------", date("Y-m-d H:i:s"), $data, "-------------");
}
}
執(zhí)行 test.php
use Webman\RedisQueue\Redis;
require_once __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/../support/bootstrap.php';
$nowtTime = date("Y-m-d H:i:s");
var_dump("start_send=".$nowtTime);
Redis::send("test-slow", ["id" => $nowtTime."-1"]); //丟失
Redis::send("test-slow", ["id" => $nowtTime."-2"]);
控制臺(tái)打印
string(13) "-------------"
string(19) "2024-01-26 18:21:26"
array(1) {
["id"]=>
string(21) "2024-01-26 18:21:26-2"
}
string(13) "-------------"
id-1的丟失了??
(ps:同時(shí)也遇到第一條沒(méi)丟,但是消費(fèi)時(shí)間很慢的情況...)
求指教..
操作系統(tǒng)及workerman/webman等框架組件具體版本
Workerman version:4.1.14 PHP version:8.0.30 Event-Loop:\Workerman\Events\Event
mac下的docker環(huán)境 krisss/docker-webman:8.0-cli-alpine
自建redis
md .被自己蠢死! 艸. 另有測(cè)試環(huán)境在執(zhí)行隊(duì)列消費(fèi)!
靈感來(lái)源: http://www.wtbis.cn/q/10262