我的 Django 项目运行良好,还有一个单独的后台进程将从各种来源收集数据并将该数据存储在索引中。
我在 Django 应用程序中有一个名为 Sources
的模型,它实质上包含一个数据来源列表!我已经成功地创建了一个信号,当在 Sources
模型中放入新条目时,该信号会被激活/调用。
我的问题是,有没有人知道我可以向后台进程发送某种形式的信号/消息以指示 Sources
模型已更改的简单方法?还是我应该每 x 秒轮询一次更改,因为这样简单得多?
非常感谢收到的任何帮助。
最佳答案
目前还不清楚您是如何运行您所说的后台进程的。
无论如何,我建议您在后台任务中直接使用Sources
模型。有一些方便的方法可以在不离开 Django 领域的情况下运行任务(以便访问您的模型。例如,您可以使用 Celery [1] 或 RQ [2]。
然后您将不需要传递任何消息,对 Sources
模型的任何更改都将在您的任务下次运行时生效。
[1] Celery 是一个开源的异步任务队列/作业队列,它不难设置并且与 Django 很好地集成。
[2] RQ 的意思是“Redis 队列”,它是“一个简单的 Python 库,用于对作业进行排队并在后台与工作人员一起处理它们”。
关于python - Django、Signals 和另一个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6980353/