用redis-queque 异步投递

za2883632

问题描述

用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

截图报错信息里报错文件相关代码

截图

操作系统及workerman/webman等框架组件具体版本

截图

322 2 0
2个回答

za2883632

注释掉 异步发送就不会出现超时连接
RedisClient::send($queue, $data);

  • 暂无评论
walkor
  • za2883632 2023-09-30

    目前都是本地连接的。。

  • za2883632 2023-09-30

    优化了 linux 内核。 在观察下。
    大概20多个小时就会出现。。redis连接超时。。然后redsi自己停止运行了

  • keytehu 2023-10-01

    1、Connection refused 是连接被拒绝,说明redis挂了,并不是连接超时,timeout才是连接超时。
    2、redis挂了应该在redis上找原因,和webman以及redis-queue没有关系
    3、如果redis总是自己停止运行,应该是redis没开守护进程,百度下redis开守护进程

  • za2883632 2023-10-02

    ok 以前都是用 5.0的redis。这次用6+的redis。运行20多个小时就挂了。。redis错误日记也没。只有写硬盘数据成功的日记

  • za2883632 2023-10-02

    先用进程守护顶一下

  • za2883632 2023-10-02

    还是说 类目 要和 消费队列的名称一样?

  • za2883632 2023-10-02

    服务器配置是 2核4G的 然后redis 会跑满这个配置。。然后进程被系统干掉了

🔝