Django,信号和另一个过程

Bob*_*_94 4 python django signals multiprocessing

我的Django项目运行良好,并且有一个单独的后台进程,它将从各种源收集数据并将该数据存储在索引中.

我在Django应用程序中有一个模型,Sources其中包含一个数据来源的源列表!我已成功设法创建一个信号,当一个新条目放入Sources模型时,该信号被激活/调用.

我的问题是,是否有一个简单的方法,任何人都知道我可以发送某种形式的信号/消息到我的后台进程,表明该Sources模型已被更改?或者我应该诉诸轮询每x秒的变化,因为它是如此简单得多?

非常感谢您收到的任何帮助.

Ant*_*off 6

目前还不清楚你是如何运行你正在谈论的后台进程的.

无论如何,我建议你在后台任务中Sources直接使用模型.有一些方便的方法可以在不离开Django领域的情况下运行任务(以便可以访问您的模型.例如,您可以使用Celery [1]或RQ [2].

然后您将不需要传递任何消息,对Sources模型的任何更改将在下次运行任务时生效.

[1] Celery是一个开源的异步任务队列/作业队列,很难与Django建立和集成.

[2] RQ的意思是"Redis Queue",它是一个简单的Python库,用于排队作业并在后台与工作人员一起处理它们.