功能逻辑是点击预约按钮延时通知客户端 为什么总是时而好使时而不好使呢,哪位大神可以帮我看看么
订阅
public function onWorkerStart(Worker $worker) { $redis = new \Workerman\Redis\Client('redis://127.0.0.1:6379'); $redis->auth('123456'); $redis->subscribe('resty',function ($channel, $message){ echo ' [x] ' . $channel.'|'.$message, "\n"; }); }
发布
public function publish() { $redis = new \Workerman\Redis\Client('redis://127.0.0.1:6379'); $redis->auth('123456'); $redis->publish('resty','Welcome Tinywan publish '.date('Y-m-d H:i:s')); }
订阅截图
看明白了,你这个是文档上那个异步redis吧,但是怎么延时呀
workerman/crontab 这个扩展
//用户发过来消息5分钟后执行预约通知 $client = new Client('redis://127.0.0.1:6379'); $client->send('chat',json_encode($chat_arr),300);
麻烦具体在问问你,crontab应该怎么写没用过
估计是业务逻辑问题。延迟消费要用队列,用这个 https://www.workerman.net/doc/workerman/components/workerman-redis-queue.html
先直接用手册里的测试例子测试,不加业务逻辑。测试没问题然后再一点一点加你的业务逻辑,这样好定位。
我用的就是这个呀,这个问题已经困扰我好多天了
想实现的功能其实很简单,用户点击一个按钮发起预约,onMessage接收他的用户信息后,来实现5分钟,10分钟各推一条预约通知提醒消息
记录日志看下,哪里执行哪里没执行。别人美环境没代码不好定位你那句代码有问题
看明白了,你这个是文档上那个异步redis吧,但是怎么延时呀
workerman/crontab 这个扩展
麻烦具体在问问你,crontab应该怎么写没用过
估计是业务逻辑问题。延迟消费要用队列,用这个 https://www.workerman.net/doc/workerman/components/workerman-redis-queue.html
先直接用手册里的测试例子测试,不加业务逻辑。测试没问题然后再一点一点加你的业务逻辑,这样好定位。
我用的就是这个呀,这个问题已经困扰我好多天了
想实现的功能其实很简单,用户点击一个按钮发起预约,onMessage接收他的用户信息后,来实现5分钟,10分钟各推一条预约通知提醒消息
记录日志看下,哪里执行哪里没执行。别人美环境没代码不好定位你那句代码有问题