问题标签 [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.
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
python - 从未知任务中检索芹菜中“task_id”的结果
如果我以前不知道执行了哪个任务,如何提取任务的结果?这是设置:鉴于以下来源('tasks.py'):
在本地运行 RabbitMQ 3.3.2:
在本地运行 Celery 3.1.12:
然后我可以导入该方法并使用“task_id”检索结果:
在下一个示例中,我在进程之间拆分了这些步骤。在一个过程中,我像这样检索“task_id”:
在另一个进程中,如果我使用相同的“task_id”(复制并粘贴到另一个 REPL,或在不同的 HTTP 请求中),如下所示:
如果我这样做,在另一个过程中:
我希望能够在事先不知道生成结果的任务的情况下获得结果。在我的真实环境中,我计划将此 task_id 返回给客户端,并让他们通过 HTTP 请求查询其作业的状态。
python - 芹菜块不执行任务
celery_tasks.py
芹菜配置文件
celery_test.py
我以这种方式开始工人:
我在“打印结果”中得到了这个
但随后在我的工作控制台中,我看到没有处理任何任务
如果我以这种方式运行任务 - 一切都很好
我正在尝试优化(不确定是否有好处)将多个 ID 提交到同一个任务中,而不是按顺序执行。
我错过了什么?
多谢
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) 时,它显示正确的工人状态。
python - 如何使用普通 celery 命令将 celery 作为守护进程运行
我有一个 django 应用程序,我正在使用 celery 任务在后台执行一些 csv 处理,所以我安装了rabbitmq-server
这样sudo apt-get install rabbitmq-server
的命令,rabbitmq-server 已安装并成功运行。
我在tasks.py
应用程序内的模块中有一些芹菜任务代码并运行如下芹菜
它工作正常并在后台成功执行 csv 文件,但现在我只想守护上面的命令,我搜索了任何守护它的选项,但我没有找到任何要传递-D
的参数,比如守护上面的命令。那么无论如何我可以守护上述命令并使芹菜运行吗?
django - 使用主管将芹菜作为守护进程运行不起作用
我有一个 django 应用程序,它具有 celery 功能,所以我可以像下面那样成功运行 celery
但众所周知,我们需要将它作为守护进程运行,所以我在文件夹中编写了以下celery.conf
文件/etc/supervisor/conf.d/
但是当我尝试更新主管时supervisorctl reread
,supervisorctl update
我收到了来自supervisorctl status
所以我去worker.log
归档并看到如下错误消息
C_FORCE_ROOT
那么为什么即使我们在主管配置文件中将它设置为环境变量,它也会抱怨 呢?我在上面的 conf 文件中做错了什么?
celery - 将 Python 脚本作为 Celery 任务执行
我正在尝试使用 Django 将 python 脚本作为芹菜任务运行。我遇到的问题是,一旦脚本开始运行,任务就认为它已经完成。我最初在 tasks.py 文件中使用 subprocess.popen(),但意识到这意味着一旦发出 popen() 命令,任务就会完成。我修改了我的 tasks.py 代码以调用我的 python 脚本中的一个函数,该函数运行该脚本;但是,这仍然会像任务立即完成一样执行。我很困惑,因为在花中它说任务已完成,但在芹菜日志中它正在输出我正在运行的脚本中定义的日志数据。我找到了以下相关帖子。我相信我正在遵循它的建议,从 tasks.py 执行 python 函数。
任务.py:
运行模型功能代码:
django - 在后台使用 celery 的 django 表单验证错误
我有一个 django 应用程序,其中我有以下表格
我的观点如下
当我处理上述视图时,request.GET 字典是{'city': 'Monroeville', 'state': 'PA', 'zipcode': '15146', 'address': '700 Beatty Rd #355'}
在这里,当我从页面的前端正常处理视图时,表单正在验证并返回True
,但是当我使用celery
(如我使用delay
celery 提供的方法)处理相同的视图时,表单没有验证并返回False
。
所以我真的很困惑为什么当我们在后台从 celery 处理表单时 django 无法验证表单,我所做的只是运行像process_address.delay(request)
.
我们需要为 celery 选项设置什么来验证表单吗?一样吗?
python - 多个 Celery 实例消耗一个队列
是否有可能在不同的机器上使用多个 celery 实例从单个任务队列中消耗,使用 django 最好使用 django-orm 作为后端?如果可能的话,我该如何实现,我似乎找不到任何文档。
python - 芹菜未注册任务KeyError
我通过在终端中执行以下命令来启动工作者:
然后我收到一条长的循环错误消息,指出 celery 已收到未注册的任务并已触发:
这个问题是cel_test.grp_all_w_codes.mk_dct
不存在的。事实上,甚至没有一个模块cel_test.grp_all_w_codes
,更不用说任务了mk_dct
。几天前有一次,但后来我删除了它。我想也许有一个.pyc
文件浮动,但没有。我在我的代码中也找不到对引发错误的任务的单个引用。我关闭了我的计算机并重新启动了 rabbitmq 服务器,我想也许对某些东西的引用只是卡在了内存中,但这并没有帮助。
有谁知道这里可能是什么问题或我错过了什么?