问题标签 [python-rq]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - rq 队列总是空的
我在我的项目中使用django-rq。
我想要实现的目标: 我有一个加载模板的第一个视图,该模板从网络摄像头获取图像并保存在我的电脑上。然后,视图调用第二个视图,其中处理图像的异步任务使用 rq 排队。最后,在 20 秒延迟后,调用第三个视图。在后一种观点中,我想检索异步任务的结果。
问题:作业对象已正确创建,但队列始终为空,因此无法使用queue.fetch_job(job_id)
. 读到这里,我设法在 FinishedJobRegistry 中找到了这份工作,但我无法访问它,因为注册表不可迭代。
问题:如何从已完成的作业注册表中检索异步作业的结果?或者,更好的是,我怎样才能正确地将工作排入队列?
python - 如何在后台任务中访问redis连接
我正在尝试扩展仅带有用户模型的烧瓶基础项目https://github.com/hack4impact/flask-base/tree/master/app 。我正在尝试添加使用 rq 在 redis 上运行后台任务的能力。我发现https://devcenter.heroku.com/articles/python-rq这很有帮助。
这个应用程序支持 redis 队列,后台 redis 队列通过运行实现:
使用:
在我看来,我有:
问题是我不知道如何将在 run_worker() 中创建的连接导入到我的视图中。我尝试了以下变化:
但我得到:
SyntaxError:无效的语法。
如何在后台任务中访问 conn 变量?
python - 有没有办法使用 Python RQ 从 __main__ 提交函数
与这个问题类似,有没有办法将同一文件中定义的函数提交给 python-rq?@GG_Python 让我为此创建一个新问题。
使用示例:
是的,我知道答案是在 someothermodule.py 中定义 somefunc 然后在上面的代码片段from someothermodule import somefunc
中,但我真的不想。也许我过于拘泥于形式,但 somefunc 确实属于它所在的同一个文件(实际上, somefunc 采用 docker 容器名称并生成它)。我真的希望整个事情都是独立的,而不是有两个模块。
我注意到,通过 python-rq 源代码挖掘,Queue.enqueue 实际上可以接受一个字符串而不是实际的模块,所以我希望我可以通过somemodule.somefunc
,但没有那么幸运。有任何想法吗?
python - 烧瓶会话 UnpickleError
我有一个长时间运行的函数,我想在 heroku 上作为后台函数运行。我正在使用 redis 和 rq 来管理它。
我的仪表板视图函数将数据加载到会话对象中以:
然后在选择后,信息被传递给:
然后:
最后我传入的函数以:
heroku 日志显示:
我一直在阅读Flask: Passing around background worker job (rq, redis),这听起来像是一个类似的问题,但我不清楚如何解决这个问题以允许我访问存储在会话中的数据目的
python - ValueError:未知类型
我在win10上本地开发,使用RQ任务队列有问题,因为需要fork进程的能力,所以只能在linux系统上运行。我正在尝试扩展可以使用 RQ的烧瓶基础项目https://github.com/hack4impact/flask-base/tree/master/app 。我遇到了https://github.com/michaelbrooks/rq-win。我喜欢这个 repo 的想法(如果我能让它工作,它真的会简化我的生活,因为我在 win 10 -64 上开发):
安装此库后
我可以通过运行以下命令在我的视图中排队作业:
这将正确返回一个 job_code。
我将 manage.py 中的代码更改为:
当我尝试使用以下命令运行它时:
总而言之,我认为这些作业在 redis 中正确排队。但是,当工作进程尝试从队列中抓取作业进行处理时,会发生此错误。我怎样才能解决这个问题?
python - python rq - 当多个其他作业完成时如何触发一个作业?多工作依赖工作?
我的 python redis 队列中有一个嵌套的作业结构。首先执行 rncopy 作业。完成后,接下来是 3 个依赖注册作业。当所有这 3 个作业的计算完成后,我想触发一个作业以向我的前端发送 websocket 通知。
我目前的尝试:
不幸的是,多作业依赖功能似乎从未合并到主控中。我看到目前在 git 上有两个拉取请求。有没有我可以使用的解决方法?
很抱歉未能提供可重现的示例。
python - Google Stackdriver 使用 Redis 队列登录 App Engine (Python)
我想使用 Stackdriver Logging 使用 Redis 队列记录到 App Engine。所以我正在使用 Redis 服务器、Redis 队列和 Python 日志记录来执行此操作。这是我的代码:
当我运行 RQ worker 时,我在终端上得到了一些输出,但找不到日志的存储位置。
如果我尝试不使用 Redis 直接登录,则日志将存储在 Google Cloud 日志记录部分的 Global 中。队列工作正常,以检查我是否已将文本附加到文件中。
似乎日志记录不起作用。如果它正在被记录,我在哪里可以找到我在 Google Cloud 上的日志?
python - 是否有类似于 RQ 的 worker 爆发的 Celery 功能?
RQ.work(burst=True)
为其工作人员提供了一种非常适合集成测试的方法,当您有将任务排入队列的代码然后希望该任务同步运行时。
我在Celery上找不到任何类似的功能。请帮忙!
python-3.x - RQ 调度程序抛出 NoRedisConnectionException
我正在构建一个应用程序,并尝试使用 Redis/python-rq/rq-scheduler 设置计划任务。
我可以很好地设置一个队列,如下所示:
但是现在当我尝试设置计划任务时,根据此处的文档链接。像这样:
我明白了
所有帮助将不胜感激。谢谢你。
python - 如何将 Python RQ worker 连接到 unix 套接字上的 redis 服务器?
我正在尝试将 RQ 工作人员连接到 Unix 域套接字上的 Redis 服务器。
我试过以下
在更改日志的版本中提到了一个--socket
标志https://github.com/rq/rq/blob/995492878df5f6b7a32614a6050af0f3a4033e2c/CHANGES.md但这似乎不起作用。