python - Django、Signals 和另一个进程

标签 python django multiprocessing signals

我的 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/

相关文章:

python - 将 R 变量传递给带有网状结构的 python 脚本

python - 如何选择列表中的第一项

python - 如何调试静默崩溃?多处理python

Python:使用多处理池时使用队列写入单个文件

python - 如何使用字符串名称在 python 中设置属性

python - 使用Python爬行WoS

Django 模板

python - 奇怪的错误 - python manage.py runserver(线程 django-main-thread 中的异常)

python - 将内存从 Python 释放回操作系统的方法?

python - 读取跨书数据集时出现 CParserError : Error tokenizing data.