从第三方服务,策略更新我的Django网站数据库?

时间:2017-07-08 16:35:37

标签: python django database cron

我正在学习Django并练习我正在开发一个YTS的克隆页面,它是一个电影种子库*。

截至目前,我已经废弃了网站上的所有电影,并将它们放在一个名为Movie的数据库表中,其中包含每部电影的所有基本信息(我计划再为Genre添加一个)。 / p>

每隔几天YTS就会发布新电影,我希望我的clone-web能够自动将它们添加到数据库中。我目前仍然决定如何做到这一点:

  • 我计划在每次用户进入网站时将我的数据库中最后一部电影的电影ID与YTS数据库中的最后一部电影进行比较,但这意味着向YTS提出请求< strong>每次我的页面加载时,它也意味着应该在我的index()视图方法中执行一些非常慢的代码。

  • 另一个策略是查询我的数据库最后一次更新(引入了新条目),如果它比一天更大,那么请求新电影到YTS。 问题是我似乎找不到任何方法来查询最后一次数据库更新的时间。它甚至存在这样的方法吗?

  • 我也可以设置一个cron作业来更新信息,但是我有问题要从一个单独的Python函数进行更改(我导入django.db等但是解释器拒绝执行django db指令)。

总而言之,从第三方服务/网站更新我的数据库的最佳策略是什么,而不会在加载时间困扰用户?如何以非侵入方式为用户设置此类更新?你一般怎么做?

*我知道种子网站与非法网站接壤,我无意以任何方式将我的项目提供给公众

2 个答案:

答案 0 :(得分:2)

我认为你应该选择definetely第三种方法,定期更新数据库的cron工作似乎是最好的选择。  你没有&#39;需要使用单独的python函数,您可以使用task安排celery,可以使用django-celery

轻松地与django集成

答案 1 :(得分:1)

最简单的方法是编写custom management command并定期从cron作业运行它。