首页 > 解决方案 > Celery 任务创建了一个新模型对象,但 django 信号没有拾取它

问题描述

我已经阅读并看到这与并发有关,芹菜无法编辑应用程序变量,因为它与 python 应用程序位于不同的线程中。因此,我通过创建一个对象来修改数据库,希望 django 信号能够接收到它,但事实并非如此。我这样做是因为我需要知道后端是否发生了更新,以便 SPA 前端可以自动获取它。有小费吗?

标签: pythondjango-modelscelery

解决方案


Django 信号仅在进程中工作。因此在 celery 中进行模型更改将触发信号在 celery 中发生。如果您需要通知单页应用程序(1)使用 websocket 或(2)向 SPA 传递 task_id,以便它可以轮询任务何时完成,然后采取必要的措施。


推荐阅读