首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >长期运行定期更新Django DB与网络收获的数据-?

长期运行定期更新Django DB与网络收获的数据-?
EN

Stack Overflow用户
提问于 2016-05-01 18:51:32
回答 1查看 99关注 0票数 0

我的Django项目有一个面向用户的站点,它很少将新对象插入用户数据库表中(稍后将有数百个,甚至数千个)。

另外,每天有几次,我需要查询一个外部的webservice,查找我的所有对象--但是慢慢地,这样就不会违反他们的“10秒1请求”规则。所以这第二个任务是一个长跑,我不能通过一个urls.py请求。

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

  • 在访问同一个DB时,我会遇到并发问题吗?(如何) Django能保护我不受伤害?(若否)如何解决?
  • 导入我的models.py --这就是我访问django DB所需要做的全部工作吗?
  • 还有其他能帮我的提示吗?

多谢百万!

Stackoverflow岩石!

:-)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-01 19:38:27

Django 提供设施也用于编写命令行应用程序。这样,您就可以从web过程中访问所有相同的东西,包括模型。

并发性是由数据库处理的,而不是django,因此您不必担心这个问题。如果您必须同时编写多个数据段,并且它们不能不同步,那么您可能需要使用交易记录

代码语言:javascript
复制
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执行它

代码语言:javascript
复制
python manage.py mycommand
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36970601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档