小编XIO*_*XIO的帖子

gevent block redis'套接字请求

目标:从redis中生成一些greenlet worker处理数据pop(从redis弹出然后放入队列)

RUNNING ENV:ubuntu 12.04 PYTHON VER:2.7 GEVENT VER:1.0 RC2 REDIS VER:2.6.5 REDIS-PY VER:2.7.1

from gevent import monkey; monkey.patch_all()
import gevent
from gevent.pool import Group
from gevent.queue import JoinableQueue
import redis

tasks = JoinableQueue()
task_group = Group()

def crawler():
    while True:
        if not tasks.empty():
            print tasks.get()
            gevent.sleep()

task_group.spawn(crawler)
redis_client = redis.Redis()
data = redis_client.lpop('test') #<----------Block here
tasks.put(data)
Run Code Online (Sandbox Code Playgroud)

尝试从redis弹出数据,但它被阻止..并且没有异常提出...只是冻结并删除spawn方法,它会工作..我觉得混淆发生了什么,PLZ帮助!你好!

python redis gevent

5
推荐指数
1
解决办法
895
查看次数

标签 统计

gevent ×1

python ×1

redis ×1