问题标签 [django-celery]

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 回答
1147 浏览

python - 无法以普通用户身份运行 celeryd 但以 root 身份运行

我已经安装celeryddjango-celery

我通过python manage.py celeryd

如果我通过 root 运行它,那么我会收到此消息

WARNING/MainProcess] /opt/python27/lib/python2.7/site-packages/celery-2.2.7-py2.7.egg/celery/apps/worker.py:124:UserWarning:以超级用户权限运行 celeryd 不是鼓励!“不鼓励以超级用户权限运行 celeryd!”)

但是如果我通过普通用户运行,我会得到这个

我已经在 celery egg 下的所有文件中添加了组读写执行权限,并将所有 celery 文件的组更改为用户,但仍然出现相同的错误

0 投票
0 回答
947 浏览

python - Celery 守护程序脚本不在后台使用初始化脚本

芹菜文档说

However, in production you probably want to run the worker in the background as a daemon.

我制作了如下的 init.d 脚本

当我执行/etc/init.d/celeryd start

现在它运行良好,但再次在前台而不是在后台

是这样还是我做错了

0 投票
1 回答
281 浏览

django - 如果我在 Django 中运行多个站点,是否需要执行单独的 celeryd

目前我在 Django 上有一个站点。但我计划运行更多的 Django 站点。

所以我想知道我需要跑步吗celeryd为每个新站点运行还是一个就足够了。

我正在通过主管运行`celeryd 守护进程

0 投票
1 回答
2036 浏览

python - 芹菜监控不适用于数据库代理

我正在使用 django-celery,将数据库用作代理和结果存储。正在处理事件,但监控(celerycam 或 celeryev)不起作用。

我的settings.py包括

这足以manage.py celeryd处理cbridge.tasks从任何地方插入队列的任务,有时将结果返回到启动任务的线程。(我有时暂时不考虑它。)所以系统设置得足以让任务实际运行,这很好,但是......

我的问题是如何让我对任务进行任何监控?没有任何东西出现在djcelery_表格中。

我跑manage.py celerycammanage.py celeryev他们启动得很好,但从不做任何事情。我猜我还需要设置更多的配置变量。但它们是什么?我试过设置

但它们没有任何区别。我希望celeryevcelerycam阅读与 celeryd 相同的配置设置。他们为什么不呢?

0 投票
2 回答
4538 浏览

django - 在 Celery 任务中使用 Django 的 ORM

Celery 任务如何访问 Django 数据库抽象 API?这是否需要使用独立 Django ORM 使用的策略之一从头开始编码,或者是否有更简化的内置方式或常见做法?

似乎没有人问这个问题。但是,对我来说,这是基本的。

这个例子暗示这没什么大不了的,但是有人能解释一下 Celery 和 Django 之间的会话管理和 ORM 范围是如何工作的吗?

0 投票
1 回答
994 浏览

django - Django-Celery - 从管理页面重新提交任务?

我目前正在开发一个使用 Django 1.3 和 Django-Celery 应用程序的项目。非常棒,顺便说一下,我建议任何不熟悉芹菜的人都可以看看。

我对管理页面功能有一个特定的问题:

我们正在使用 celery 任务对第三方合作伙伴进行 RESTful API 调用。这些调用实际上是由用户操作启动的,因此您可以看到 celery 任务在这种情况下非常有用。

如果由于某种原因失败,我们有一个关于管理员应该如何重新发送回调的用户故事。现在,如果回调因标准 HTTP 响应失败而失败,我们将使用 celery 重试机制以不同的时间间隔自动重新发送它们。然而,这些回调可能是发给成千上万的合作伙伴之一(是的,有很多),并不是所有的合作伙伴都会使用标准的 HTTP 响应代码作为他们的失败响应。

长话短说,我在网上找不到任何可以通过管理界面重新发送芹菜任务的东西。我希望有人可以对此有所了解。这似乎是一个非常明显的功能,如果没有这样的功能,我相信这是有充分理由的。如果没有办法做到这一点,我会喜欢它,如果有人可以解释原因。只是想了解更多关于芹菜内部运作的信息。

感谢大家!抱歉我的啰嗦,有时我倾向于漫无边际。

0 投票
1 回答
1988 浏览

django - 除了写入数据库之外,Celery 任务似乎可以做所有事情

我将 Django 与 MongoEngine、django-celery 和 MongoDB 后端一起用于 celery。我正在排队一项任务。该任务涉及从 GridFS 获取文件(通过 MongoEngine FileField),对其进行操作并将其放回数据库中。

该任务按我预期的方式运行,无需排队。当我排队时,它会转换文件,但不会写入数据库。

这是我的 settings.py 的相关部分。

我正在像这样运行芹菜

当它运行任务时,芹菜说这个

(没有错误)

这是任务。

convert 调用了一堆其他函数。基本上,它首先从 FileField 读取,操作该字符串,将该字符串写入文件,操作该文件,将生成的字符串和文件写入其他 FileField,然后运行 ​​image.save()。

根据我是否将任务排队,mongo 日志看起来会有所不同。这就是我使用任务队列时 mongo 日志中发生的情况。

这就是当我直接调用 convert(image) 而不是调用 queue_convert(image.id) 时发生的情况

关于可能出现什么问题的任何想法?

0 投票
1 回答
201 浏览

django - Celery 是否可以在不复制源代码的情况下在另一台计算机上进行性能密集型任务?

再会!

我想问一下芹菜。我有一个项目,并且有 3 个任务(通过 cron 运行,管理命令)。这些任务是资源密集型和高负载的服务器 Web 服务器。

我希望这些任务在另一台计算机上执行(有一个单独的服务器),结果进入主数据库。

我可以通过将整个项目复制到另一台服务器来做到这一点,不要在那里运行网站,而只运行任务(通过 cron)。但这不是很好,因为我将拥有两个相同的源代码副本。如果我要更改它,我需要在 Web 服务器中填写代码,然后将其复制到分配给资源密集型任务的服务器......不要觉得......

我可以用芹菜做这个吗?即项目是一个副本,但我的任务在另一台服务器上?或者我仍然必须将所有文件复制到将执行这些命令的服务器?

谢谢你。

PS对不起我的英语。

0 投票
6 回答
8646 浏览

django - 为什么在 django 中运行 syncdb 时没有创建 celery_taskmeta 和其他表?

我正在尝试设置 celery 和 django,但没有创建 celery_taskmeta 表。

我遵循了许多(最近的)教程,将 djcelery 和 djkombu 添加到了我的 installed_apps。将 'BROKER_TRANSPORT = "djkombu.transport.DatabaseTransport"' 行添加到我的设置等中。

我可以很好地运行守护进程,它会执行任务,但最后会吐出这个回溯:

===============

-=============================

那么我到底是如何在syncdb期间创建这个表的呢?

0 投票
1 回答
1857 浏览

python - 如何使用 Ajax 检查 django-celery 任务的状态和结果?

Django Celery 文档建议我可以检查一些 URL 来获取任务的状态。这些网址是什么?