使用GatewayWorker架設(shè)了個服務(wù)端
采用RedisQueue來處理信息隊(duì)列
在Events.php里的onWorkerStart里創(chuàng)建了訂閱
$redisQueue=new Client('redis://127.0.0.1:6379');
$redisQueue->subscribe("User-1",function($message){
//信息的處理
Common::Msg($message);
});
然后外部網(wǎng)站使用手冊上提供的例子
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);
}
在測試中,發(fā)現(xiàn)外部網(wǎng)站使用上面那樣的發(fā)送,有發(fā)送成功了,但服務(wù)端沒有收到。
在服務(wù)端里采用
$redisQueue->send('User-1',$data);
來發(fā)送,是可以收到的。
不知是哪里有問題。