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



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

我的问题是:

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

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

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

非常感谢有Django知识的经验丰富的程序员的回答。非常感谢。

对于

1) 用于定时和后台任务的标准启动解决方案是Celery,它集成了Django。还有其他人,比如Hueyhttps://github.com/coleifer/huey

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

3) 参见2

最新更新