长跑者定期更新Django数据库与网络收获的数据?

2024-05-15 02:37:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我的Django项目有一个面向用户的站点,它很少将新对象插入到userdb表中(稍后会有成百上千个)。你知道吗

此外,每天有几次,我需要为我的所有对象查询一个外部Web服务—但要慢一些,以免违反他们的“每10秒1个请求”规则。所以这第二个任务是一个长的跑步者,我不能通过一个网址.py请求。你知道吗

因此,除了(uWSGI)服务器进程之外。。。我将在后台运行第二个进程;它需要使用相同的数据库(使用默认的sqlite3)。你知道吗

  • 访问同一数据库时是否会遇到并发问题?(怎么)Django能保护我不受伤害吗?(如果没有)如何解决?你知道吗
  • 导入我的型号.py-这就是访问django数据库所需要做的一切吗?你知道吗
  • 还有什么线索能帮到我吗?你知道吗

万分感谢!
堆垛溢出岩石!你知道吗

:-)


Tags: 项目对象djangopy服务器web数据库进程
1条回答
网友
1楼 · 发布于 2024-05-15 02:37:36

Djangoprovides facilities用于编写命令行应用程序。通过这种方式,您可以访问web进程中的所有内容,包括模型。你知道吗

并发是由数据库处理的,而不是django,所以您不必担心这个问题。如果您必须同时写入多个数据并且它们不能不同步,那么您可能只想使用transactions。你知道吗

class Command(BaseCommand):
    def handle(self, *args, **kwargs):
        try:
            while True:
                self._fetch_data()
                time.sleep(10)
        except KeyboardInterrupt:
            pass

    def _fetch_data(self):
        data = ... # fetch data here
        MyModel.objects.create(foo=data.foo, bar=data.bar) # insert into db

假设上述类位于某个应用程序的management/commands/mycommand.py文件夹中,请使用manage.py执行它:

python manage.py mycommand

相关问题 更多 >

    热门问题