在Django中自动更新数据库
我正在尝试建立一个显示股票信息的网站,我有一个叫做populate_stocks.py的文件,它可以把一组股票信息填充到数据库里。因为这些股票信息几乎每分钟都会变化,所以我需要确保通过再次运行populate_stocks.py来更新数据库里的新信息。
我在想有没有办法让我的django应用自动调用这个文件来更新股票信息。我查了一下,发现有人使用crontab,但感觉这有点复杂,不知道有没有其他的解决办法。
1 个回答
0
虽然我同意用 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()
你需要把这个放到 management -> commands 文件夹里,并把 Python 文件命名成你想要的命令名称(比如在这个例子中可以叫 updatify.py)。
然后你可以运行下面的命令来启动你的监控程序。
./manage.py updatify
虽然这对你特定的问题来说可能有点过于复杂,但我发现它在处理更棘手的问题时非常有用,希望能帮到某些人节省时间。