在django中自动更新数据库

时间:2014-06-17 13:36:31

标签: python django

我正在尝试构建一个显示股票信息的网站,我有一个名为populate_stocks.py的文件,该文件使用一组给定的股票填充数据库。由于这些股票几乎每分钟都会发生变化,我需要确保通过再次运行populate_stocks.py来更新数据库中的新信息。

我想知道是否有办法让我的django应用程序自动调用此文件来更新股票信息。我四处搜索,发现另一个人使用crontab,这看起来有点复杂,并且想知道是否有其他解决方案。

1 个答案:

答案 0 :(得分:0)

虽然我同意使用crontab来解决这个问题实际上可能是解决这个问题的最简单方法,但是有一种可能的替代方法,就是在crontab上创建一个与服务器一起运行的管理功能。

基本上,它以绝对最简单的形式,以Django NoArgsCommand的形式创建一个基本循环。

from django.core.management.base import NoArgsCommand
from populate_stocks import yourmysticalfunctionofupdating

class Command(NoArgsCommand):
   help = "This runs the loop of glory, that does as it is told."

   def handle_noargs(self, **options):
      while True:
         yourmysticalfunctionofupdating()

您需要将其纳入管理层 - >命令文件夹并命名python文件,无论你想要命令应该是什么(想象一下,在这个例子中它是updatify.py)。

然后,您可以运行以下命令来运行监视程序。

./manage.py updatify

虽然这可能对你的特定问题有点过分,但我发现它对棘手的问题非常有帮助,我希望能节省一些时间。