问题标签 [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 回答
565 浏览

django - Django 日志记录破坏了 celery 守护进程

我在生产中运行 django 1.3 和 django-celery 2.4.2。

由于我已经在 django settings.py 文件中激活了 django 日志记录,因此 celery 守护进程 (celeryd) 将不再运行。删除日志记录功能可以解决问题。

我在 settings.py 中的日志代码如下所示:

编辑: 我在 LOGGING 字典之前添加了以下代码,它解决了这个问题。如果有人有更干净的解决方案,我想听听。

0 投票
1 回答
1139 浏览

django - 为什么 CeleryCAM 不能与 Amazon SQS 一起使用?

我正在使用 Celery 2.4.6 和 django-celery 2.4.2。

当我根据这个问题的解决方案配置 Celery 以使用 Amazon SQS 时:Celery with Amazon SQS

我在 Django 管理员的 celerycam 表中看不到任何内容。如果我切换回 RabbitMQ,任务会再次出现。

我在 SQS 中有很多(现在 40 多个)队列,名称如下:“celeryev-92e068c4-9390-4c97-bc1d-13fd6e309e19”,看起来它们可能是相关的(一些较旧的甚至有一个事件在其中),但是数据库中没有显示任何内容,并且我在 celerycam 日志中没有看到任何错误。

任何关于问题可能是什么或如何进一步调试的建议将不胜感激。

0 投票
1 回答
770 浏览

celery - 在生产中使用 Celery 和 django-kombu 是否安全?

在生产中使用 Celery 和 django-kombu 是否安全?我在 Heroku 上有这个设置,所以我的应用程序的数据库(postgres)是消息传输。我看到间歇性问题,例如任务已完成,但我仍将其状态视为待处理。我想知道这是否是因为争用问题。我见过有人建议不要在生产中使用 django-kombu:https ://gondor.io/support/celery/

0 投票
1 回答
869 浏览

heroku - 芹菜任务状态不更新

我看到一个使用 Celery 作为任务队列的 Django 应用程序存在一个奇怪的问题:

  1. 我开始一个任务。
  2. 在执行期间,任务调用 update_state(...) 来设置任务状态以指示进度。
  3. 任务完成。我通过日志验证了这一点。

但是,此视图 (http://myapp/tasks/37d9a3ac-5bd2-4791-9729-2234ff3be762/status) 在任务完成后的一段时间内返回一个 STALE 结果。我可以使用 Redis 和数据库作为后端来重现这个。最终任务状态正确返回,但这确实破坏了我的应用程序,因为 UI 会在用户执行任何操作之前轮询任务是否已完成。

编辑:我的应用程序部署在 Heroku 上。我想知道 Cedar 是否有任何响应缓存?

知道发生了什么吗?

0 投票
1 回答
464 浏览

rabbitmq - 收到 Django-celery 状态?

我通过 django-celery(以 rabbitmq 作为后端)运行一些任务,这些任务非常耗时且 CPU 密集型。

我有 2 个 worker Ec2 实例(一个很小,另一个是高 cpu 中等)。

我已经将小实例设置为运行 1 个并发任务,将中型实例设置为 4 个。这对我来说效果很好。但是偶尔,在 celery 监视器中,我看到小实例正在处理一项任务,并且还有 2 或 3 个任务处于“接收”状态(分配给小实例),而中型实例没有做任何事情。理想情况下,id 喜欢 medium 实例优先于 small,但在这种情况下,如果 small 处于并发状态,则任务应该转到 medium。似乎这个小实例咬得比它可以咀嚼的多......就像在给它自己分配任务时一样,它目前无法启动。

有没有办法让工人只接受当时可以开始的任务?

截图:http ://dl.dropbox.com/u/361747/task-state.png 。以domU开头的worker是small,以ip开头的worker是medium。

0 投票
1 回答
5017 浏览

python - 任务状态和 django-celery

我使用 django-celery 并有这样的任务:

我使用 django shell 来运行任务:

从芹菜日志我看到该任务已执行:

但是,当我从地狱检查任务状态时,我总是得到 PENDING:

即使任务执行得很好。

为什么会发生这种情况?

0 投票
1 回答
1319 浏览

rabbitmq - Celery,rabbitmq:如何安装远程工作者?

我可以有多台机器来执行任务并返回由 django 分发的消息吗?我查看了 celery/rabbitmq,我不确定我是否可以在远程计算机上设置 celery worker。任何人都可以指导我通过这里吗?如果这是不可能的或非常困难的,该问题的任何替代解决方案?

0 投票
2 回答
619 浏览

django - 使用 Django 让 Heroku 中的 Worker 闲置

我在 Heroku 中使用 Django,在我的网站中,我每个月都通过 Celery 发送批量电子邮件。由于我每个月只使用这个工人一次,我不想一直为此付费。 我可以在发送电子邮件之前和之后使用 a 停止工作人员heroku scale workers=0并手动扩展它。heroku scale workers=1

但是,由于其他非技术人员也会从 django 发送电子邮件,因此他们无法运行这些命令。我可以通过在 Heroku Web 进程中从 Python 执行命令来停止工作人员吗?我可以在发送电子邮件之前执行任何命令。

0 投票
1 回答
1076 浏览

django - 芹菜术语有点混乱

嗨,我有点困惑celeryd-celeryd_multi这两者有什么区别?我的意思是,到目前为止我一直在使用python manage.py celeryd,但我今天遇到celeryd_multi了,找不到任何解释。根据文档,-c表示处理队列的子进程数,所以如果是这样,有什么celeryd_multi's用法?

0 投票
1 回答
5336 浏览

python - Python SEM_OPEN 错误

我正在尝试使用与 RabbitMQ 和 Django 一起运行的 Celery。到目前为止,我的服务器上安装了 RabbitMQ 2.7,以及 python 2.7、Django 1.3、celery 2.4.6 和 django-celery 2.4.2

我按照这里的简单说明http://django-celery.readthedocs.org/en/latest/introduction.html

然后我尝试通过运行来启动芹菜

但它给了我这个错误

我做了一些研究,发现了这里的错误http://bugs.python.org/issue3770,它应该是固定的,但我猜不是python 2.7。

另外,我的操作系统是 CentOS release 4.9 (Final)。我从源代码构建了python。

我启动了 python shell 并运行:

没有错误,但是我然后运行:

我得到了错误(上面)。

任何帮助表示赞赏。