python+redis blpop方法获取不到队列里的数据?

我用python开发我的应用调用blpop从redis队列获取新消息,如果队列里面没有数据就阻塞。但是上线运行一段时间后,通过redis原生的blpop命令可以看到队列有数据,但是程序就是获取不到,程序一直阻塞在result=r.blpop(queue_name) ,重启后没事??这是怎么回事?有什么办法或工具找到问题吗?

代码如下:
pool = redis.ConnectionPool(host=globalConfig.redis_ip,
port=globalConfig.redis_port,db=globalConfig.redis_db)
r = redis.StrictRedis(connection_pool=pool)
while True:
result=r.blpop(queue_name) ##队列没有数据就阻塞
###执行自己的业务逻辑####

阅读 9.1k
2 个回答
新手上路,请多包涵

我也遇到了差不多的问题,brpop设置了timeout 3600秒 但是实际上 几分钟后就获取不到数据了 但是socket又没有断开 一直阻塞在brpop处 队列中是已经有数据的

新手上路,请多包涵

大佬请问找到解决办法了吗。我的问题跟你一模一样 搞了好久没招了(╥﹏╥)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题