redisGetReply超时

时间:2013-04-30 06:23:36

标签: redis hiredis

我可以暂停redisGetReply吗? 我目前的代码是

 while(redisGetReply(context,&reply) == REDIS_OK) {
        //Check for isstopped 
         if yes return    
        // consume message
        freeReplyObject(reply);
    }

目前,如果我向程序发出SIGINT信号。目前,如果我在redisGetReply中发出SIGINT和此线程的信号。它会等到服务器发出任何消息。

如何让redisGetReply停止某些siganl或者readreply超时?

1 个答案:

答案 0 :(得分:0)

正如您在此链接中所看到的

Testing hiredis example

您可以在调用redisGetReply之前设置超时

struct timeval tv = { 0, 1000 };
assert(redisSetTimeout(c,tv) == REDIS_OK);
test_cond(redisGetReply(c,&_reply) == REDIS_ERR &&
        c->err == REDIS_ERR_IO && errno == EAGAIN);
redisFree(c);