目标:产生一些greenlet worker处理从redis弹出的数据(从redis弹出然后放入队列)
运行环境:ubuntu 12.04 Python 版本:2.7 GEVENT 版本:1.0 RC2 REDIS 版本:2.6.5 REDIS-PY 版本: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)
尝试从 redis 中弹出数据,但它被阻塞了......并且没有引发异常......只需冻结并删除 spawn 方法,它会起作用..我对发生的事情感到困惑,请帮助!谢谢你!