问题标签 [celery-task]

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.

0 投票
1 回答
3545 浏览

python - 芹菜计划不起作用并使用 Django 得到 KeyError

环境:django 1.6.5 python 2.7 celery 3.1.11

我运行这个项目的目标服务器没有安装 djcelery。所以,我不想使用 djcelery。我遵循 DOCS First steps with Django AND Using Celery in your Application。当我运行时,celery -A djproj -B -l debug我得到了 KeyError。并且实际上没有目标任务[tasks]。任何人都知道如何解决它?谢谢。

错误

Shedule 似乎不起作用。我的完整代码在这里。部分代码粘贴如下。

我的项目文件夹:

djproj/djproj/__init__.py

djproj/djproj/celery.py

djproj/djproj/settings.py

djproj/apps/app1/tuan.py

djproj/run.sh

0 投票
2 回答
10203 浏览

python - 从未知任务中检索芹菜中“task_id”的结果

如果我以前不知道执行了哪个任务,如何提取任务的结果?这是设置:鉴于以下来源('tasks.py'):

在本地运行 RabbitMQ 3.3.2:

在本地运行 Celery 3.1.12:

然后我可以导入该方法并使用“task_id”检索结果:

在下一个示例中,我在进程之间拆分了这些步骤。在一个过程中,我像这样检索“task_id”:

在另一个进程中,如果我使用相同的“task_id”(复制并粘贴到另一个 REPL,或在不同的 HTTP 请求中),如下所示:

如果我这样做,在另一个过程中:

我希望能够在事先不知道生成结果的任务的情况下获得结果。在我的真实环境中,我计划将此 task_id 返回给客户端,并让他们通过 HTTP 请求查询其作业的状态。

0 投票
1 回答
741 浏览

python - 芹菜块不执行任务

celery_tasks.py

芹菜配置文件

celery_test.py

我以这种方式开始工人:

我在“打印结果”中得到了这个

但随后在我的工作控制台中,我看到没有处理任何任务

如果我以这种方式运行任务 - 一切都很好

我正在尝试优化(不确定是否有好处)将多个 ID 提交到同一个任务中,而不是按顺序执行。

我错过了什么?

多谢

0 投票
3 回答
3778 浏览

python - 即使在任务启动后,AsyncResult(task_id) 也会返回“PENDING”状态

在项目中,我尝试轮询一个长时间运行的任务的 task.state 并更新其运行状态。它在开发中工作,但是当我将项目移动到生产服务器上时它不会工作。即使我可以看到任务从花开始,我也一直在“等待”。但是,当 task.state == 'SUCCESS' 时,我仍然可以在任务完成时更新结果。我在生产中使用 python 2.6、Django 1.6 和 Celery 3.1,结果后端 AMQP。

另一方面,花总是离线显示工人的状态,但任务状态是正确的。使用 celery events 3.1.12 (Cipter) 时,它显示正确的工人状态。

0 投票
2 回答
1808 浏览

python - 如何使用普通 celery 命令将 celery 作为守护进程运行

我有一个 django 应用程序,我正在使用 celery 任务在后台执行一些 csv 处理,所以我安装了rabbitmq-server这样sudo apt-get install rabbitmq-server的命令,rabbitmq-server 已安装并成功运行。

我在tasks.py应用程序内的模块中有一些芹菜任务代码并运行如下芹菜

它工作正常并在后台成功执行 csv 文件,但现在我只想守护上面的命令,我搜索了任何守护它的选项,但我没有找到任何要传递-D的参数,比如守护上面的命令。那么无论如何我可以守护上述命令并使芹菜运行吗?

0 投票
3 回答
13599 浏览

django - 使用主管将芹菜作为守护进程运行不起作用

我有一个 django 应用程序,它具有 celery 功能,所以我可以像下面那样成功运行 celery

但众所周知,我们需要将它作为守护进程运行,所以我在文件夹中编写了以下celery.conf文件/etc/supervisor/conf.d/

但是当我尝试更新主管时supervisorctl rereadsupervisorctl update我收到了来自supervisorctl status

所以我去worker.log归档并看到如下错误消息

C_FORCE_ROOT那么为什么即使我们在主管配置文件中将它设置为环境变量,它也会抱怨 呢?我在上面的 conf 文件中做错了什么?

0 投票
1 回答
3871 浏览

celery - 将 Python 脚本作为 Celery 任务执行

我正在尝试使用 Django 将 python 脚本作为芹菜任务运行。我遇到的问题是,一旦脚本开始运行,任务就认为它已经完成。我最初在 tasks.py 文件中使用 subprocess.popen(),但意识到这意味着一旦发出 popen() 命令,任务就会完成。我修改了我的 tasks.py 代码以调用我的 python 脚本中的一个函数,该函数运行该脚本;但是,这仍然会像任务立即完成一样执行。我很困惑,因为在花中它说任务已完成,但在芹菜日志中它正在输出我正在运行的脚本中定义的日志数据。我找到了以下相关帖子。我相信我正在遵循它的建议,从 tasks.py 执行 python 函数。

任务.py:

运行模型功能代码:

0 投票
1 回答
264 浏览

django - 在后台使用 celery 的 django 表单验证错误

我有一个 django 应用程序,其中我有以下表格

我的观点如下

当我处理上述视图时,request.GET 字典是{'city': 'Monroeville', 'state': 'PA', 'zipcode': '15146', 'address': '700 Beatty Rd #355'}

在这里,当我从页面的前端正常处理视图时,表单正在验证并返回True,但是当我使用celery(如我使用delaycelery 提供的方法)处理相同的视图时,表单没有验证并返回False

所以我真的很困惑为什么当我们在后台从 celery 处理表单时 django 无法验证表单,我所做的只是运行像process_address.delay(request).

我们需要为 celery 选项设置什么来验证表单吗?一样吗?

0 投票
1 回答
2082 浏览

python - 多个 Celery 实例消耗一个队列

是否有可能在不同的机器上使用多个 celery 实例从单个任务队列中消耗,使用 django 最好使用 django-orm 作为后端?如果可能的话,我该如何实现,我似乎找不到任何文档。

0 投票
1 回答
2536 浏览

python - 芹菜未注册任务KeyError

我通过在终端中执行以下命令来启动工作者:

然后我收到一条长的循环错误消息,指出 celery 已收到未注册的任务并已触发:

这个问题是cel_test.grp_all_w_codes.mk_dct不存在的。事实上,甚至没有一个模块cel_test.grp_all_w_codes,更不用说任务了mk_dct。几天前有一次,但后来我删除了它。我想也许有一个.pyc文件浮动,但没有。我在我的代码中也找不到对引发错误的任务的单个引用。我关闭了我的计算机并重新启动了 rabbitmq 服务器,我想也许对某些东西的引用只是卡在了内存中,但这并没有帮助。

有谁知道这里可能是什么问题或我错过了什么?