问题标签 [django-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 - 来自 django-rq 的 rqworker 没有收到任务
我试图让工作人员按照此处解释的方法运行一些异步函数。
这意味着,在我的tasks.py
文件中,我有:
然后在我的views.py
文件中:
目前我正在本地进行测试。因此,我打开了两个终端:一个运行python manage.py runserver
,另一个运行python manage.py rqworker default
。
因此,当我在浏览器中加载“results_page.html”时,我希望任务排队并开始使用 rqworker 运行。问题是这只发生在一些随机时间,而在其余时间,rqworker 的终端只显示:
我的第一个想法是,当我同时使用两个不同的终端时,连接没有正确完成。但是,我认为这没有意义,因为有时异步任务确实会运行。
为什么工人有时看不到任务?
python - django:表单提交后在哪里触发工作人员
我已经编写了一些我想使用 django-rq 运行的代码,即使用工人。我创建了一个表单,用户可以在其中选择多个对象并按下按钮开始操作。为此,我在views.py中有:
我应该在哪里添加这段代码以开始使用工人执行作业?它来自FormView的功能之一吗?form_valid/dispatch ?
django - 来自环境设置问题或 django_rq 问题的 Django 字典?
尝试从环境变量动态创建 Django_rq 队列配置时,我遇到了一种奇怪的行为。
我的环境变量是:
进入我的 settings.py 我有:
我期待 denerated RQ_QUEUES dict 像这个正在工作的那样:
即使配置似乎运行良好并且我可以从 django_rq 网页看到队列,但我的工作人员无法连接并实际上抛出此错误,就像 redis 中没有队列键一样
回溯(最后一次调用):文件“manage.py”,第 10 行,在 execute_from_command_line(sys.argv) 文件“/home/work/virtualenv/runaway_dev/lib/python3.6/site-packages/django/core/ management/ init .py”,第 350 行,在 execute_from_command_line utility.execute () 文件“/home/work/virtualenv/runaway_dev/lib/python3.6/site-packages/django/core/management/init.py”,第 342 行,在执行 self.fetch_command(subcommand).run_from_argv(self.argv) 文件“/home/work/virtualenv/runaway_dev/lib/python3.6/site-packages/django/core/management/base .py”,第 348 行,在 run_from_argv self.execute(*args, **cmd_options) 文件“/home/work/virtualenv/runaway_dev/lib/python3.6/site-packages/django/core/management/base.py ”,第 399 行,在执行输出 = self.handle(*args, **options) 文件“/home/work/virtualenv/runaway_dev/lib/python3.6/site-packages/django_rq/management/commands/rqworker.py ",第 79 行,在处理队列 = get_queues(*args) 文件中 "/home/work/virtualenv/runaway_dev/lib/python3.6/site-packages/django_rq/queues.py",第 166 行,在 get_queues queue_params = QUEUES [queue_names[0]] KeyError:'默认'
顺便说一句:如果我使用上面的静态配置,它工作得很好,所以我的嫌疑人更关注 Django_rq 而不是创建队列,但也许我也在 Django 的设置上做了一些不正确的事情。
任何帮助将非常感激。谢谢。
F。
python - RQ: redis.exceptions.ResponseError: Command # 3 ... of pipeline 导致错误:使用内存 > 'maxmemory' 时不允许使用 OOM 命令
我正在使用 RQ 在我的 django 应用程序中运行后台任务,因为它应该是完成工作的最简单方法之一。该任务包括检查一些 API 是否有任何信息已更新,并在我自己的数据库中插入任何新信息。
直到几天前,它工作正常,但我现在收到一个我无法解决的错误。
从错误消息的最后几行:
OOM command not allowed when used memory > 'maxmemory'
一开始我以为我向工人传递了太多数据。但是,我最终减少了传递给具有 5 个键值对的单个字典的数据,但我仍然收到错误消息(请参阅底部的完整消息)。然而,直到上周,我才通过了 20 多本字典,每本字典都有更多的元素,而且运行良好。
知道为什么我会收到此错误以及如何解决它吗?
错误信息:
这就是我传递任务的方式
和
python - rq 入队函数:因 TypeError 失败:function_xxx() 采用 2 个位置参数,但给出了 3 个
在过去的几个小时里,这一直困扰着我,我似乎还找不到解决方案。
我正在使用 django-rq 将一些长时间运行的任务排入队列。在我的tasks.py
中,我有以下内容:
在我的views.py
,
但是,当我运行它时,它会失败并显示以下消息-
显然,我在这里做了一些愚蠢的事情,但我还无法弄清楚。有人可以让我知道这里发生了什么吗?
django - django_rq 作业未添加到队列中
我正在使用:django-rq:0.9.6 rq_scheduler:0.6.1
我对 docker 和 django_rq 还很陌生。
我遇到的问题是,我的工作没有执行或进入队列。
码头工人-compose.yml
设置.py
在 python shell 中,我运行 :do_task.delay()
并且 RQ 队列的已完成作业数量大幅增加。当我运行:scheduler.schedule(datetime.utcnow(), 'do_task', interval=20)
时,我没有得到任何响应。
任务.py
django - 使用主管启动 rqworker 会导致生成错误
尝试使用以下命令启动 rqworker,如其自述文件中所述:
出于某种原因,它给出了ERROR (spawn error)
状态显示FATAL Exited too quickly (process log may have details)
。日志中没有任何错误信息 ( exit status 1; not expected
)。
我的主管配置:
直接从ubuntu
用户运行命令按预期工作。
python - rq 队列总是空的
我在我的项目中使用django-rq。
我想要实现的目标: 我有一个加载模板的第一个视图,该模板从网络摄像头获取图像并保存在我的电脑上。然后,视图调用第二个视图,其中处理图像的异步任务使用 rq 排队。最后,在 20 秒延迟后,调用第三个视图。在后一种观点中,我想检索异步任务的结果。
问题:作业对象已正确创建,但队列始终为空,因此无法使用queue.fetch_job(job_id)
. 读到这里,我设法在 FinishedJobRegistry 中找到了这份工作,但我无法访问它,因为注册表不可迭代。
问题:如何从已完成的作业注册表中检索异步作业的结果?或者,更好的是,我怎样才能正确地将工作排入队列?
django - AWS Elastic Beanstalk 上的 django-rq 和 rqscheduler 部署
我有一个在 AWS EB 环境中运行的 Django 应用程序。随着最近的更新,我不得不为一些基于队列的后台任务集成 django-rq 和 rqscheduler。这一切都可以在 localhost 上使用命令rqworker
和rqscheduler
. 但我很难找到一种让它在 AWS EB 环境中运行的方法。我的分析表明,唯一的方法是使用 ElastiCache。任何人都可以指导我正确的方向或任何可以帮助我的博客文章吗?
django - 将一个结果推送到另一个工作 django-rq
我正在构建一个应用程序,其中用户的信息经常从外部 API 更新。为此,我正在使用django-rq
.
第一项工作每天安排一次,以获取需要更新其个人资料的用户。
对于第一个作业返回的每个结果,安排另一个作业从远程 API 获取新的用户信息并更新我的数据库中的用户。
/li>
我可以安排这两个工作,如下所示:
然而,这肯定不是我想要的。我想知道是否有任何方法django-rq
可以通知何时get_users_to_update
完成、获取结果并安排remote_update_user
.
rq
允许depends_on
将依赖作业声明为已提交作业,但似乎此类功能在django-rq
.