Django-每隔几分钟更新一个模型

Django-每隔几分钟更新一个模型,django,rest,django-models,Django,Rest,Django Models,我正在构建一个应用程序,我需要从API获取一些数据,并每隔几分钟用这些数据更新所有模型 什么是一个干净的方法来完成这样的事情?好吧,这是一个相当开放的问题 你需要创建一个每隔几分钟运行一次的任务,你可以用芹菜来完成。芹菜有一个任务schedluer,它将在配置的时间启动一个特定的函数,类似于crontab 然后,任务将获取数据,这是一个非常好的库,可以发出http请求 最后,同样重要的是,您需要序列化获取的数据并将其保存到您的模型中。Django rest框架序列化功能是一个很好的起点,但是如果

我正在构建一个应用程序,我需要从API获取一些数据,并每隔几分钟用这些数据更新所有模型


什么是一个干净的方法来完成这样的事情?

好吧,这是一个相当开放的问题

你需要创建一个每隔几分钟运行一次的任务,你可以用芹菜来完成。芹菜有一个任务schedluer,它将在配置的时间启动一个特定的函数,类似于crontab

然后,任务将获取数据,这是一个非常好的库,可以发出http请求

最后,同样重要的是,您需要序列化获取的数据并将其保存到您的模型中。Django rest框架序列化功能是一个很好的起点,但是如果数据结构足够简单,您可以使用JSON python库JSON.loads(data)并创建一个函数,将API上的字段转换为模型的字段


顺便说一句,我假设是一个RESTAPI。

您可以使用一个任务管理工具,该工具具有在指定的时间间隔内运行定期任务的功能,如


此外,如果您在类Unix系统上运行代码,则可以继续使用django的核心功能。只需将您的功能编写为,并将其设置为在您首选的时间间隔内运行。

编写一个管理命令,并使用cron或类似工具对其进行调度。管理命令+作为cron调度如果您需要这样做,您可能会彻底检查您的体系结构是否最佳。我会考虑使用Django的缓存系统或清漆或类似的东西来查询API的需求和缓存结果。@ SW WoaseGGL,我担心在这种情况下用太多的请求敲击API。但我会调查一下缓存系统,谢谢@Rechunk应该更少,因为如果不需要,您不必查询它,并且如果您有缓存结果,您也不会命中它。。或者查询一些批量端点并在一个请求中获取所有数据,然后考虑只按需获取单个记录?