我正在尝试构建一个显示股票信息的网站,我有一个名为populate_stocks.py的文件,该文件使用一组给定的股票填充数据库。由于这些股票几乎每分钟都会发生变化,我需要确保通过再次运行populate_stocks.py来更新数据库中的新信息。
我想知道是否有办法让我的django应用程序自动调用此文件来更新股票信息。我四处搜索,发现另一个人使用crontab,这看起来有点复杂,并且想知道是否有其他解决方案。
答案 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
虽然这可能对你的特定问题有点过分,但我发现它对棘手的问题非常有帮助,我希望能节省一些时间。