用redis-queque 异步投递 会连接超时
use Webman\RedisQueue\Client as RedisClient;
$msg .= "合:{$data['before_num']}{$num}={$data['after_num']}";
$data['msg'] = $msg;
RedisClient::send($queue, $data);
//执行的代码
class msgQueue implements Consumer
{
// 要消费的队列名
public $queue = 'push_msg';
// 连接名,对应 plugin/webman/redis-queue/redis.php 里的连接`
public $connection = 'default';
// 消费
public function consume($data)
{
//发送微信消息
Wechat::wechat_msg($data['wx_id'] ?? '', $data['fromWxid'] ?? '', $data['msg']);
// 无需反序列化
// var_dump($data); // 输出 ['to' => 'tom@gmail.com', 'content' => 'hello']
}
}
2023-09-29 13:14:24 pid:10654 RedisException: Connection refused in phar:///www/wwwroot/118.178.238.162/webman.phar/vendor/illuminate/redis/Connectors/PhpRedisConnector.php:153
注释掉 异步发送就不会出现超时连接
RedisClient::send($queue, $data);
https://www.workerman.net/doc/workerman/faq/client-connect-fail.html
目前都是本地连接的。。
优化了 linux 内核。 在观察下。
大概20多个小时就会出现。。redis连接超时。。然后redsi自己停止运行了
1、Connection refused 是连接被拒绝,说明redis挂了,并不是连接超时,timeout才是连接超时。
2、redis挂了应该在redis上找原因,和webman以及redis-queue没有关系
3、如果redis总是自己停止运行,应该是redis没开守护进程,百度下redis开守护进程
ok 以前都是用 5.0的redis。这次用6+的redis。运行20多个小时就挂了。。redis错误日记也没。只有写硬盘数据成功的日记
先用进程守护顶一下
还是说 类目 要和 消费队列的名称一样?
服务器配置是 2核4G的 然后redis 会跑满这个配置。。然后进程被系统干掉了