gpt4 book ai didi

celery 中的 Django 信号

转载 作者:行者123 更新时间:2023-12-04 03:09:52 25 4
gpt4 key购买 nike

我有一个在 Celerybeat 实例中运行的任务。执行该任务时,它有时会修改模型对象,该对象应触发 post/pre_save 信号,但事实并非如此。信号没有发生。我想这是由于 Django 的信号是同步的,而 celery 在不同宇宙的不同线程中的不同服务器上执行它。有没有一种简单的方法可以在 celery 中运行这些信号时仍然触发它们?

最佳答案

Django 信号是本地的,这意味着信号处理程序也必须在 worker 中注册。

如果您的信号处理程序已连接,例如models.py ,那么你需要导入那个
tasks.py以确保它也在工作人员中连接。

或者,您可以指定工作人员应使用导入的其他模块CELERY_IMPORTS环境:

CELERY_IMPORTS = ("myapp.handlers", )

-I celeryd 的论据。
$ python manage.py celeryd -I myapp.handlers

关于 celery 中的 Django 信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3920174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com