Closed sgfcz closed 1 month ago
你好。我们的任务支持watch_timeout,你可以先试一下能不能解决。
task->set_watch_timeout(100000); // 第一个回复包最多等100秒。
不过,依然是一来一回的逻辑。如果是一个请求,多个回复,需要扩展一下。
你好。我们的任务支持watch_timeout,你可以先试一下能不能解决。
task->set_watch_timeout(100000); // 第一个回复包最多等100秒。
不过,依然是一来一回的逻辑。如果是一个请求,多个回复,需要扩展一下。
可能是我没太说清楚,a task执行redis sub指令的时候,redis服务器就会返回一个告诉你sub成功的resp,这个时候a task就没了,那这个时候redis服务器主动resp的时候他就没链接去resp了
你好。我们的任务支持watch_timeout,你可以先试一下能不能解决。
task->set_watch_timeout(100000); // 第一个回复包最多等100秒。
不过,依然是一来一回的逻辑。如果是一个请求,多个回复,需要扩展一下。
可能是我没太说清楚,a task执行redis sub指令的时候,redis服务器就会返回一个告诉你sub成功的resp,这个时候a task就没了,那这个时候redis服务器主动resp的时候他就没链接去resp了
明白。之前我们这边没有人使用这个功能,所以我理解错了redis订阅的模式。 这个需求我们接了,打算给redis client加上这个功能。还需要做一些设计工作。
关于redis我可以进行task的挂起,等待redis服务器或者其他reids task进行publish的时候收到数据吗
我现在使用了redis++的库,发现了更多细节就是,在启动过后,链接不能断的同时,还得写个死循环去不断的找服务器获取通道里面的最新数据
关于redis我可以进行task的挂起,等待redis服务器或者其他reids task进行publish的时候收到数据吗
我现在使用了redis++的库,发现了更多细节就是,在启动过后,链接不能断的同时,还得写个死循环去不断的找服务器获取通道里面的最新数据
死循环里,需要发请求吗?还是只是看看有没有数据被推过来?
关于redis我可以进行task的挂起,等待redis服务器或者其他reids task进行publish的时候收到数据吗
我现在使用了redis++的库,发现了更多细节就是,在启动过后,链接不能断的同时,还得写个死循环去不断的找服务器获取通道里面的最新数据
死循环里,需要发请求吗?还是只是看看有没有数据被推过来?
要做一个叫做consume得操作,类似于一个请求吧,然后redis服务器才会把数据给你,但是你的连接不能断,因为每个连接,服务器都会记录下来,你消费得时候,服务器才知道是给你
但是这个consume具体背后操作了什么,这几天一直在整业务代码,没时间去探究
没事,我们看了文档,还比较简单。
没事,我们看了文档,还比较简单。
关于这个我还有个问题想请教下,关于单独开线程,不用std::thread,用wffuture有具体例子吗
因为比如这个一直consume得这个死循环我就是在另一个线程用的,我今天下午突然想起来你们不建议这样,代码是:
std::shared_ptr
void this::runfuncation() { while (flag) { redis++.consume(); sleep(10); } }
你自己开线程没有什么问题啊。如果你自己的异步任务要和workflow的任务流结合,可以用WFCounterTask。你看一下计数器相关的文档。
Sub/pub的功能我们还在开发中,希望做得自然一点,需要绕一大圈。
WFCounterTask
好的
懂了,找时间试一试
关于redis我可以进行task的挂起,等待redis服务器或者其他reids task进行publish的时候收到数据吗