外部网站向RedisQueue发送数据没有收到

freely

使用GatewayWorker架设了个服务端
采用RedisQueue来处理信息队列
在Events.php里的onWorkerStart里创建了订阅
$redisQueue=new Client('redis://127.0.0.1:6379');
$redisQueue->subscribe("User-1",function($message){
//信息的处理
Common::Msg($message);
});

然后外部网站使用手册上提供的例子

public static function redis_queue_send($redis,$queue,$data,$delay=0){
        $queue_waiting = '{redis-queue}-waiting'; //1.0.5版本之前为redis-queue-waiting
        $queue_delay = '{redis-queue}-delayed';//1.0.5版本之前为redis-queue-delayed
        $now = time();
        $package_str = json_encode([
            'id'       => rand(),
            'time'     => $now,
            'delay'    => 0,
            'attempts' => 0,
            'queue'    => $queue,
            'data'     => $data
        ]);
        if ($delay) {
            return $redis->zAdd($queue_delay, $now + $delay, $package_str);
        }
        return $redis->lPush($queue_waiting.$queue, $package_str);
    }
public static function test(){
        $redis = new \Redis;
        $redis->connect('127.0.0.1', 6379);
        $queue ='User-1';
        $data= ['some', 'data'];
        $result=self::redis_queue_send($redis, $queue, $data);

}

在测试中,发现外部网站使用上面那样的发送,有发送成功了,但服务端没有收到。
在服务端里采用
$redisQueue->send('User-1',$data);
来发送,是可以收到的。
不知是哪里有问题。

582 1 0
1个回答

roczyl

外部网站是什么意思?

  • freely 2022-08-09

    就是其它普通的网站,但又想要让其它网站推送数据到Redis缓存里

  • roczyl 2022-08-09

    外部网站也部署在同一台服务器上?$redis->connect('127.0.0.1', 6379);

年代过于久远,无法发表回答
🔝