问题标签 [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.
django - 工作人员热关闭后未确认芹菜任务
我是 djcelery 开发的新手。我想通过 Web 界面上的按钮关闭工作人员。因此,当在 tasks.py 中单击按钮时,我将调用以下任务:
我注意到如果工作人员作为一个活动任务,它不会立即关闭,它会在任务执行完成后关闭。但是,任务状态始终为“已启动”。如果我重新启动worker,任务将再次被拾取并执行。反正我可以更新任务状态,因为它已经被执行了吗?我确实将 CELERY_ACKS_LATE 设置为 True。
更新:我使用的 celery 版本是 3.0.9(Chiastic Slide),我使用 Rabbitmq 作为代理。
django - result.ready() 在 django celery 中没有按预期工作?
我有一个 django celery 视图,它执行某些任务,并在任务成功完成后将其写入数据库。
我正在这样做:
和,
但是在任务完成执行后,它不会进入 if 条件。我试过result.ready()
但没有运气。
编辑:以上几行在同一个视图中:
e: #写入数据库
django - 是否可以显示 django celery 任务的进度条?
我在 django celery 中使用数据库后端。任务信息存储在名为:celery_taskmeta
in database 的表中。这是我的任务:
我这样称呼任务:
现在我想向用户展示他们在 Django 模板中的任务进度和剩余时间。我怎样才能做到这一点?
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 复制粘贴到这个。
django - Django celery 一次只运行两个任务?
我有这样的芹菜任务:
我已经调用了 Djagno 视图。
用户可以选择多个文件复制到目的地。例如,如果用户选择一次 4 个文件,celery 只接受 2 个任务。怎么了?
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。
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
python - task_revoked 处理程序中的芹菜任务 ID
所以我有一个创建工作目录并在那里完成所有工作的任务。该任务从服务器 A调用并在工作服务器上执行。
一旦任务完成/取消,我需要确保删除工作目录。
我添加了一个任务撤销处理程序,它看起来像这样:
我的问题是当服务器 A取消任务时,我无法在撤销的处理程序中清理工作目录,因为它没有 task_id。
有没有办法从这个特定的信号处理程序中获取任务 ID? 其他一些信号也有它们,我查看了这些信号的发布源,由于某种原因,这个信号没有提供 task_id。
提供的sender
任务包含一个 trace_task 函数:{'__trace__': <function trace_task at 0x3ee8230>}
但我看不到如何使用它,因为该函数本身需要一个 task_id。
欢迎任何其他想法。
celery - 在给定时间点执行的 celery 任务数
我正在尝试动态地异步创建一堆芹菜任务。假设我异步启动了 1000 个任务,而我只有一个 celeryd 进程正在运行来执行任务。celery 会创建多少个线程来处理这些任务?
如果 celery 自动启动多个线程来处理任务队列,我如何限制 celery 在给定时间点仅执行 100 个线程。
谢谢。
django - Django Celerybeat PeriodicTask 运行远远超出预期
我正在为 Django、Celery、djcelery 和 PeriodicTasks 苦苦挣扎。
我创建了一个任务来为 Adsense 提取报告以生成实时统计报告。这是我的任务:
我正在使用 Celery 和 RabbitMQ。这是我的设置:
乍一看,一切似乎都正常,但在打开记录器并观察它运行后,我发现它至少连续四次运行该任务 - 有时更多。它似乎也每分钟运行一次,而不是每两分钟运行一次。我尝试将 run_every 更改为使用 crontab,但我得到了相同的结果。
我正在使用主管开始 celerybeat。这是我使用的命令:
关于为什么它没有按预期工作的任何想法?
哦,还有一件事,在日期变化之后,它会继续使用它第一次运行的日期范围。因此,随着时间的推移,它会继续获取任务开始运行当天的统计信息 - 除非我在某个时候手动运行任务,否则它会更改为我上次手动运行它的日期。有人能告诉我为什么会这样吗?