MỤC TIÊU: đẻ trứng một vài thỏa thuận lao động greenlet với pop dữ liệu từ redis (pop từ redis và sau đó đưa vào hàng đợi)gevent yêu cầu ổ cắm khối redis'
CHẠY 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)
Cố gắng pop dữ liệu từ redis, nhưng nó blocked..and không phải ngoại lệ huy động ... chỉ cần đóng băng và loại bỏ phương pháp đẻ trứng, nó sẽ làm việc .. tôi cảm thấy bối rối những gì hap pened, plz giúp đỡ! thk u!
Tại sao điều này lại được giảm giá? – schlamar
Tôi không biết nhưng tôi vẫn đứng bởi câu trả lời của tôi ;-) –