【问题标题】:Updating my Django website's database from a third party service, strategies?从第三方服务更新我的 Django 网站的数据库,策略?
【发布时间】:2017-07-09 00:58:12
【问题描述】:

我正在学习 Django,为了练习,我目前正在开发 YTS 的克隆页面,它是一个电影种子存储库*。

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

每隔几天 YTS 就会发布新电影,我希望我的克隆网站自动将它们添加到数据库中。我目前正在决定如何执行此操作:

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

  • 另一种策略是查询我的数据库上次更新的时间(引入了新条目),如果它比一天大,则向 YTS 请求新电影。 问题是我似乎没有找到任何方法来查询上次数据库更新的时间。有这种方法吗?

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

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

* 我知道一个 torrent 网站是非法的,我无意以任何方式将我的项目提供给公众

【问题讨论】:

    标签: python django database cron


    【解决方案1】:

    我认为您应该明确地选择第三种选择,定期更新数据库的 cron 作业似乎是最佳选择。 你不需要使用单独的python函数,你可以安排一个taskcelery,使用django-celery可以很容易地与django集成

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-01-30
        • 1970-01-01
        • 2021-04-15
        • 2016-10-09
        • 1970-01-01
        • 2016-05-27
        • 2019-10-17
        • 2021-08-13
        • 1970-01-01
        相关资源
        最近更新 更多