问题标签 [djcelery]

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 投票
0 回答
330 浏览

django - 工作人员热关闭后未确认芹菜任务

我是 djcelery 开发的新手。我想通过 Web 界面上的按钮关闭工作人员。因此,当在 tasks.py 中单击按钮时,我将调用以下任务:

我注意到如果工作人员作为一个活动任务,它不会立即关闭,它会在任务执行完成后关闭。但是,任务状态始终为“已启动”。如果我重新启动worker,任务将再次被拾取并执行。反正我可以更新任务状态,因为它已经被执行了吗?我确实将 CELERY_ACKS_LATE 设置为 True。

更新:我使用的 celery 版本是 3.0.9(Chiastic Slide),我使用 Rabbitmq 作为代理。

0 投票
1 回答
1062 浏览

django - result.ready() 在 django celery 中没有按预期工作?

我有一个 django celery 视图,它执行某些任务,并在任务成功完成后将其写入数据库。

我正在这样做:

和,

但是在任务完成执行后,它不会进入 if 条件。我试过result.ready()但没有运气。

编辑:以上几行在同一个视图中:

e: #写入数据库

0 投票
1 回答
11573 浏览

django - 是否可以显示 django celery 任务的进度条?

我在 django celery 中使用数据库后端。任务信息存储在名为:celery_taskmetain database 的表中。这是我的任务:

我这样称呼任务:

现在我想向用户展示他们在 Django 模板中的任务进度和剩余时间。我怎样才能做到这一点?

0 投票
1 回答
569 浏览

django - Django celery 启动时出现 pytz 错误

尝试使用 celery 和 celery beat 启动我的开发服务器时,突然出现以下错误。有一天这个东西可以工作,第二天就不行了,我没有改变任何可以解释这一点的东西。我使用工头和 Procfile.dev 启动我的服务器,如下所示:

档案:

命令:

就像我说的,这从来没有给出任何错误。堆栈跟踪如下:

我安装的软件包的版本:

我曾尝试重新安装 pytz,但这并没有帮助。

任何建议如何解决这个问题?

编辑 1

我已经尝试过 Burhan Khalid 的回答,这确实修复了 IOError,但是抛出了一个新错误。我尝试了两个地方来粘贴 zoneinfo 数据,它们导致了不同的错误,您可以在下面找到:

当像建议的那样粘贴到 usr/share/zoneinfo/ 中时,我得到了这个:

当粘贴到 ~/.virtualenvs/env_name/lib/python2.7/site-packages/pytz/zoneinfo 中时:

因此,提供的 zoneinfo 数据似乎不正确/不完整。我从哪里获得正确的数据?

编辑2:

我将 Burhan Khalid 的答案标记为答案,即使对我来说它不起作用。我这样做是因为我确定我做错了什么并且答案是正确的。我如何解决这个问题只是简单地将 zoneinfo 数据从另一台 macbook 复制粘贴到这个。

0 投票
1 回答
961 浏览

django - Django celery 一次只运行两个任务?

我有这样的芹菜任务:

我已经调用了 Djagno 视图。

用户可以选择多个文件复制到目的地。例如,如果用户选择一次 4 个文件,celery 只接受 2 个任务。怎么了?

0 投票
1 回答
1664 浏览

django - Django Celery Chord 不执行

我有一个程序可以通过 Python 的 itertools 生成大量产品列表;基本上是一大组各种单词组合。通过 products() 函数运行多个集合。我想做的是让 Celery 帮助解决这个问题,将每组分配给不同的 Celery 任务,然后最后将它们组合起来。我的理解是和弦是做到这一点的方法。

所以基本上我有这个:

以及它的两个支持性、精简的功能:

起初,和弦任务出现在 celeryev 中,但我在这里引用了一个问题:Django Celery - Missing something but I don't know what? 有结果,但无法让他们知道 Celery 返回与通过 MySQL 进行结果跟踪有关的错误。我确实使用 MySQL 作为我的结果后端,并将其切换到 Redis 摆脱了它。但是,现在我遇到了一个新问题。当我通过 Django shell 运行代码时,celeryev 中没有出现任何任务,除此之外没有返回任何内容:

基本上是一条 Celery 消息,但没有数据。代码也永远不会返回,我的光标悬空。当我按 C 键退出时,行号是 Celery 中似乎正在等待的东西。我不知道会发生什么,因为 celeryev 没有给我任何任务。我已经确认其他任务确实显示在 celeryev 中。

我已经正常测试了我的函数,没有将它们作为 Celery 任务运行,并且它们正常返回。

简短版本 我试图让 Celery 和弦帮助我的 Django 应用程序中的密集 Python 任务,但它们似乎没有返回任何结果或进入 celeryev。Redis 后端。芹菜版本 3.0.15。姜戈 1.4。

0 投票
0 回答
534 浏览

django - 无法使用 Django 1.5、django-celery 3.0.11 和 mongodb 对任务进行排队

每个人。当我从 django shell 运行以下代码时,我Django==1.5遇到django-celery==3.0.11 了问题 error: [Errno 61] Connection refused

设置.py

data_warehouse.tasks(从教程复制)

当我运行 python manage.py celery worker -l info 我得到

当我尝试使用带有此代码的 python shell 运行任务时

我得到这个预期的错误。

问题可能来自 Celery 实例没有调用正确的代理 url,但我还没有弄清楚。你对此有什么想法吗?

解决了!!只需添加

到 settings.py

0 投票
1 回答
1467 浏览

python - task_revoked 处理程序中的芹菜任务 ID

所以我有一个创建工作目录并在那里完成所有工作的任务。该任务从服务器 A调用并在工作服务器上执行。

一旦任务完成/取消,我需要确保删除工作目录。

我添加了一个任务撤销处理程序,它看起来像这样:

我的问题是当服务器 A取消任务时,我无法在撤销的处理程序中清理工作目录,因为它没有 task_id。

有没有办法从这个特定的信号处理程序中获取任务 ID? 其他一些信号也有它们,我查看了这些信号的发布源,由于某种原因,这个信号没有提供 task_id。

提供的sender任务包含一个 trace_task 函数:{'__trace__': <function trace_task at 0x3ee8230>}但我看不到如何使用它,因为该函数本身需要一个 task_id。

欢迎任何其他想法。

0 投票
1 回答
742 浏览

celery - 在给定时间点执行的 celery 任务数

我正在尝试动态地异步创建一堆芹菜任务。假设我异步启动了 1000 个任务,而我只有一个 celeryd 进程正在运行来执行任务。celery 会创建多少个线程来处理这些任务?

如果 celery 自动启动多个线程来处理任务队列,我如何限制 celery 在给定时间点仅执行 100 个线程。

谢谢。

0 投票
1 回答
1257 浏览

django - Django Celerybeat PeriodicTask 运行远远超出预期

我正在为 Django、Celery、djcelery 和 PeriodicTasks 苦苦挣扎。

我创建了一个任务来为 Adsense 提取报告以生成实时统计报告。这是我的任务:

我正在使用 Celery 和 RabbitMQ。这是我的设置:

乍一看,一切似乎都正常,但在打开记录器并观察它运行后,我发现它至少连续四次运行该任务 - 有时更多。它似乎也每分钟运行一次,而不是每两分钟运行一次。我尝试将 run_every 更改为使用 crontab,但我得到了相同的结果。

我正在使用主管开始 celerybeat。这是我使用的命令:

关于为什么它没有按预期工作的任何想法?

哦,还有一件事,在日期变化之后,它会继续使用它第一次运行的日期范围。因此,随着时间的推移,它会继续获取任务开始运行当天的统计信息 - 除非我在某个时候手动运行任务,否则它会更改为我上次手动运行它的日期。有人能告诉我为什么会这样吗?