编写无限期运行的 Django 后端程序——要记住什么?

Writing a Django backend program that runs indefinitely -- what to keep in mind?

我正在尝试编写一个 Django 应用程序来查询远程数据库中的某些数据,对部分数据执行一些计算并存储结果(使用 Django 模型在本地数据库中)。它还过滤另一部分并单独存储结果。然后我的前端查询我的 Django 数据库以获取这些处理过的数据并将它们显示给用户。

我的问题是:

  1. 如何编写一个持续在后台运行的代理程序,从远程数据库下载数据,进行计算/过滤并将结果存储在本地Django数据库中?特别是,在编写无限期运行的程序时,最重要的事情是什么? 为此目的使用 cron 是个好主意吗?

  2. 从远程数据库检索的数据属于多个用户,每个用户的数据也必须单独保存/存储在我的本地数据库中。我该如何实现?也许使用行级/ class-实例级权限?请记住,后端代理负责存储、更新和删除。前端只读取数据(通过http请求)

  3. 最后,我允许创建新用户。如果新用户具有远程数据库的有效凭据,则应允许该用户使用我的应用程序。在这种情况下,我的后端将从远程数据库下载该特定用户的数据,执行计算/过滤并将结果呈现给用户。我如何为新用户处理对象/数据库表的动态创建?以及在检索用户数据时如何区分用户数据?

非常感谢了解 Django 的经验丰富的程序员的回答。谢谢你。

为了

1) 定时和后台任务的标准入门解决方案是集成了 Django 的 Celery。还有其他人,比如 Huey https://github.com/coleifer/huey

2) 通常的解决方案是每行包含此数据所属的 user_id 列。这使用 Django ORM 的 ForeignKey 字段映射到用户模型。您的用户需要直接查询数据库还是他们有直接的数据库帐户?如果没有,那么这个解决方案就足够了。听起来你的前端有 1 个数据库连接,所有权限逻辑都由前端处理,而不是数据库本身。

3) 见 2