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

python - 将 django-celery 作为守护进程运行时出现操作系统错误

我需要将 celery 作为守护进程运行。我没有为此使用主管。相反,我想在系统启动时使用 init 运行 celery。

这是我在启动芹菜时遇到的错误的回溯sudo /etc/init.d/celeryd start

/var/www/html/hello 是我的根 django 应用程序的路径

我正在关注这里的教程。

我浏览了有关 stackoverflow 等的几个答案,发现这可能是权限问题。但后来我创建了一个新组和一个用户,并将这个组分配给整个 django root 应用程序。问题依然存在。

我一直坚持这一点。谁能告诉我如何解决这个问题?

0 投票
1 回答
49 浏览

django - 嵌套 if 在 Django 中不起作用

我正在尝试使用嵌套 if 做一个项目。但它不起作用。为什么?我的代码是,

0 投票
1 回答
370 浏览

python - 不在 djcelery 中记录 celery 任务参数

我使用 django + celery + python + djcelery + Flower 进行开发。在django看来。我做了类似的事情:

一切正常。

但是当我检查芹菜花时,我发现用户名/密码在那里。当我在 django admin 中检查 djcelery 时,用户名/密码也在那里。

所以我的问题是:

  1. 我们可以只在内存中制作参数,以便没有人可以看到它们吗?
  2. 我想清除现有的任务登录花,可以吗?

更新:

我认为 args 是由 djcelery 捕获的,因为我发现这些数据存储在 djcelery_taskstate 中。

更新:

  • Djcelery 使用 celerycam 捕获这些信息并将它们存储在后端并在 django admin 中显示它们。
  • 花,我认为,使用一些类似的方法来捕获这些信息并在花页中显示它们。但是下面的方法可以防止花捕获一些敏感数据。 http://flower.readthedocs.org/en/latest/config.html#format-task
  • 我仍然没有找到禁用 celerycam 捕获这些数据的方法。

更新:

最后,我用mysql触发器修复了celerycam。每当它将密码存储到数据库中时,我都会使用触发器来擦除密码

谢谢

0 投票
1 回答
865 浏览

django - 如何杀死一个芹菜任务

任务.py

模型.py

我每 10 秒安排了一个 celery 运行任务。周期性任务包括根据开始时间和结束时间更新民意调查的代码。如果轮询在开始时间和结束时间之间,则将轮询状态更新为正在运行。如果当前状态正在运行,那么当到达结束时间时如何停止轮询。如何杀死该项目中的芹菜任务?

0 投票
2 回答
1413 浏览

django - DJCelery 不在 Django SQLite DB 中存储任务结果

DJCelery没有将任务结果存储在我的Django SQLite数据库中。

我有一个现有的 Django 项目,我已经开始在上面设置带有 RabbitMQ 的 Celery。我启动了我的 RabbitMQ 服务器。我可以运行 Celerypython manage.py celeryd --verbosity=2 --loglevel=DEBUG和 Celerybeat python manage.py celerybeat --verbosity=2 --loglevel=DEBUG。一切都在没有错误的情况下启动,并且我的定期示例任务也可以在没有错误的情况下运行。

pip install django-celery以前是安装的。我在我安装的应用程序中有 djcelery 并运行了python manage.py migrate djcelery. 我添加CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'到我的 settings.py 文件的末尾。

当我运行python manage.py celeryd --verbosity=2 --loglevel=DEBUG时,启动文本显示:

结果部分为空白向我表明配置不正确,但我不知道如何。我尝试在我的 celery.py 文件中使用 app.conf.update 来设置 CELERY_RESULT_BACKEND 但得到了相同的结果。我省略了 CELERY_RESULT_BACKEND,但默认为没有结果。我也尝试过 put'database'而不是,'djcelery.backends.database:DatabaseBackend'但这表明它正在尝试使用sqlalchemy而不是djcelery.

当我运行时,python manage.py runserver我可以看到一个DJCELERY带有表格CrontabsIntervalsPeriodic tasksTasks和的部分Workers。我的任务中没有任何数据。

谁能指出可能有什么问题或遗漏?感谢您的时间。

0 投票
1 回答
241 浏览

django - 使用 Django/djcelery 时 celeryd-multi 命令未知

我正在DjangoCelery已安装的应用程序一起使用djcelery。我正在尝试在命令行上启动多个工作人员。我可以python manage.py celeryd毫无问题地运行。包括Celeryd Docs在内的所有地方都说命令是celeryd-multi启动多个工人。我试着跑python manage.py celeryd-multi,我得到了Unknown command: 'celeryd-multi'。为什么我会收到此错误?

0 投票
1 回答
2571 浏览

python - 如何解决此错误?django+celery+rabbitmq+mysql+redis 中的“RestartFreqExceeded: 5 in 1s”

所以我将 django 与芹菜一起使用。rabbitmq 是代理。redis 是缓存。mysql是数据库。(本地主机中的所有内容)

  1. 我正在使用 python2.7 并使用基于 virtualenv 的虚拟环境
  2. 我在默认端口启动redis服务器(本地)
  3. 在一个新的终端中,我运行

    /li>
  4. 在一个新的终端我像这样开始芹菜

    /li>

而且这个程序曾经有效。但是现在当我运行 celery 命令时,我得到以下信息

我完全不知道为什么会发生这种情况或如何解决这个问题。我一遍又一遍地搜索谷歌和 StackOverFlow,但没有用。

我认为它可能发生的一个原因是,有一次我曾经一次运行 4 名芹菜工人,然后将他们全部关闭。也许正因为如此,它说超出了重启频率,但不确定。而且不知道如何解决这个问题。可能是一些配置文件设置,但是哪个设置和在哪里也没有线索。

如果需要任何其他信息,我会提供。任何帮助表示赞赏。谢谢你。

0 投票
1 回答
210 浏览

python - 芹菜定期任务作为 Django 上的 asnyc

我的英语不好,所以如果你看不懂我的句子,请给我任何意见。

我在 django 上使用 celery 进行定期任务。

这是我的芹菜时间表,我将 redis 用于芹菜队列。

问题是,当最大的任务开始时,其他任务被搁置。最大的任务会处理 10 小时,其他任务会在 10 小时后开始。

我的任务看起来像

我发现,芹菜给了我 task.apply_asnyc(),但找不到可以在 asnyc 上工作的周期性任务。

所以,我想知道 celery 的周期性任务可以作为 asnyc 任务工作。我的芹菜工人是 8 名工人。

0 投票
2 回答
378 浏览

python - 芹菜:如何'|' 操作员在链接多个任务时工作?

我知道|它是一个按位“或”运算符,但这让我想知道它在 celery 的情况下如何工作,同时链接多个任务。

我知道第二个任务会将第一个函数的结果作为参数,但这怎么可能?'|' 在哪里 在 dj-celery 源代码中重载?

有人可以提供一些见解吗?

0 投票
1 回答
1054 浏览

python - 芹菜连接到远程服务器broker_url

我正在按照文档对 celery 进行守护。

我的 BROKER_URL 已设置为以下格式:- 'amqp://<user>:<password>@<ip>/<vhost>'

因此,当我手动启动 celery 时celery worker -A app_name,它会与远程服务器连接。但是当我守护它时,它会与本地主机 amqp 连接。有什么理由吗?

这是我创建芹菜对象的方法:-

我的 settings.py 文件:-

为什么它的行为如此诡异?即使它打印了远程 IP url,但仍然尝试与本地 amqp 连接?