我正在使用PythonRQ(由Redis支持)将任务提供给一堆工作进程。我在向队列添加作业时不小心发送了一个元组,所以现在我有这样的队列:highmediumlow('low',)default我似乎无法弄清楚如何摆脱('low',)队列。该队列似乎还因其名称而引起一些问题(例如,我无法在rq-dashboard中查看或清除它,因为页面将拒绝加载)。这里有一些讨论:RQ-Empty&DeleteQueues,但这仅涵盖清空队列。我可以从Python中很好地清空队列,但我似乎无法从Redis服务器中实际删除队列。RQ文档似乎没有提供任何关于摆脱您不想要的队列的信息。我想真正删除那个队列(
我正在尝试将RQworker连接到Unix域套接字上的Redis服务器。我试过以下方法$rqworker--url'/path/to/redis.sock'Error111connectingtoNone:6379.Connectionrefused.$rqworker--url'redis:///path/to/redis.sock'Error111connectingtoNone:6379.Connectionrefused.$rqworker--url'redis+socket:///path/to/redis.sock'Error111connectingtoNone:6379
我有一个名为modeling-manager的flask应用程序正在运行,它正在接收来自另一个flask应用程序的发布请求。'直到那里一切正常。(所有文件都位于同一个文件夹中)当被post请求触发时,Modeling-manager会在Redis中注册一个作业供worker执行。要执行的作业称为run_model(),它存储在main.py(flask应用程序)中的不同文件和导入器中worker在与建模管理器应用程序相同的docker上启动。使用脚本:worker.pymain.py->flask应用程序fromflaskimportFlask,request,jsonifyimpor
这困扰了我几个小时,我似乎还没有找到解决方案。我正在使用django-rq对一些长时间运行的任务进行排队。在我的tasks.py中,我有以下内容:fromdjango_rqimportjob@jobdeflong_running_task(hash,url,file_path):#doingsomework在我的views.py中,defpost(self,request,hash,file_path,format=None):URL="http://127.0.0.1:9000/work/"task=django_rq.enqueue(long_running_task,hash,U
如果这是一个愚蠢的问题,我道歉并会羞愧地把头藏起来,但是:我正在使用rq在Python中对作业进行排队。我希望它像这样工作:工作A开始。作业A通过WebAPI抓取数据并存储。作业A运行。作业A完成。A完成后,作业B开始。作业B检查作业A存储的每条记录,并添加一些额外的响应数据。完成工作B后,用户会收到一封高兴的电子邮件,说他们的报告已准备就绪。到目前为止我的代码:redis_conn=Redis()use_connection(redis_conn)q=Queue('normal',connection=redis_conn)#thisisterrible,Iknow-fixingla
我将开始在我的项目中使用django-rq。DjangointegrationwithRQ,aRedisbasedPythonqueuinglibrary.测试使用RQ的Django应用程序的最佳实践是什么?例如,如果我想将我的应用程序作为黑盒进行测试,在用户执行某些操作后我想执行当前队列中的所有作业,然后检查我的数据库中的所有结果。我怎样才能在我的django测试中做到这一点? 最佳答案 我刚找到django-rq,它允许您在测试环境中启动一个工作线程,该工作线程执行队列中的任何任务然后退出。fromdjango.testimpo
如何将作业的结果传递给依赖它的作业?我目前所做的是将第一份工作的id传递给第二份工作,first=queue.enqueue(firstJob)second=queue.enqueue(secondJob,first.id,depends_on=first);并在secondJob中获取第一个作业以获取结果first=queue.fetch_job(previous_job_id)printfirst.result这是推荐的方式吗?我可以使用任何其他模式将第一份工作的结果直接传递给第二份工作吗? 最佳答案 您可以从作业本身访问有关当
我想使用django_rq和rq-scheduler进行离线任务,但我不确定在哪里调用rq-scheduler安排重复任务的能力。现在,我已将我的日程安排添加到我的应用程序中的tasks.py模块,并将其导入到__init__.py中。不过,必须有更好的方法来做到这一点,对吗?提前致谢。 最佳答案 我创建了一个自定义管理命令,它修改并替换了django_rq中包含的rqscheduler命令。此处提供了一个示例:https://github.com/rq/rq-scheduler/issues/51#issuecomment-362
我有两种作业:一种是我想串行运行的,另一种是我想同时并行运行的。但是,我希望并行作业以串行方式安排(如果您仍在关注)。即:做A。等待A,做B。等待B,同时执行2个以上版本的C。我认为它有2个redis队列,一个只有一个worker的serial_queue。还有一个parallel_queue,上面有多个worker。serial_queue.schedule(scheduled_time=datetime.utcnow(),func=job_a,...)serial_queue.schedule(scheduled_time=datetime.utcnow(),func=job_b,
我正在尝试使用django_rq在Redis中排队一项基本工作,一个用于排队作业并在后台与工作人员一起处理它们的python库,但是简单的调用会抛出一个:AttributeError:'dict'objecthasnoattribute'__module__'我已将问题追溯到这个line在rq图书馆:ifnotisinstance(f,string_types)andf.__module__=='__main__':raiseValueError('Functionsfromthe__main__modulecannotbeprocessed''byworkers.')我正在将一个函数