在设置python时,我面临一个基本问题-- rqworker
似乎无法识别被推送到正在监听的队列中的作业。
所有东西都在virtualenv
内部运行
我有以下代码:
from redis import Redis
from rq import Queue
from rq.registry import FinishedJobRegistry
from videogen import videogen
import time
redis_conn = Redis(port=5001)
videoq = Queue('medium', connection=redis_conn)
fin_registry = FinishedJobRegistry(connection=redis_conn, name='medium')
jobid = 1024
job = videoq.enqueue(videogen, jobid)
while not job.is_finished:
time.sleep(2)
print job.result
这里,videogen
是一个简单的函数,它立即返回它接收到的整数参数。
在运行rqworker medium
并启动应用程序时,没有打印结果。除了以下内容之外,在rqworker中没有任何额外的跟踪:
14:41:29 RQ worker started, version 0.5.0
14:41:29
14:41:29 *** Listening on medium...
redis实例可以从我运行rqworker的同一个shell访问,甚至显示更新的键:
127.0.0.1:5001> keys *
1) "rq:queues"
2) "rq:queue:medium"
3) "rq:job:9a46f9c5-03e1-4b08-946b-61ad2c3815b1"
那么这里可能缺少什么呢?
发布于 2015-02-26 01:44:25
愚蠢的错误-不得不向rqworker提供redis连接url。
rqworker --url redis://localhost:5001 medium
https://stackoverflow.com/questions/28738696
复制相似问题