使用SQLAlchemy的和金字塔计划的后台数据库更新

问题描述 投票:2回答:1

我建立一个网络应用程序,它利用SQLAlchemy的存储和检索数据。我的目标是在后台计划每天都在更新SQLite数据库的应用程序正在不断运行。我目前的做法可以作为以下几点:

  1. 通过一系列的文本文件阅读,并添加适当的信息表中的行到数据库initializedb.py:SQLite数据库首先被初始化,并从脚本构建
  2. 金字塔的应用程序,然后运行,可通过localhost:6543访问
  3. 然后,用户能够访问从SQLite数据库读取列表,使用Jinja2的模板渲染

我的应用程序将持续运行24/7,使用户可以访问此列表时。因为这是我从初始化数据库中的文本文件,不断更新,我希望能够为日常以及更新数据库。我的主要问题是:

我怎么会自动更新使用SQLAlchemy的金字塔和每天的数据库?

如果代码更新数据库定期从应用程序单独运行一个脚本完成,还是应该在金字塔代码本身来完成,比如在views.py

python sqlalchemy pyramid
1个回答
0
投票

使用cron来安排定期任务

只需使用cron。每天运行你的initialise一次代码重新创建数据库。

如果您需要更复杂,您可以使用celery更先进的东西。但我认为cron将是最好的地方开始。

如果你做的数据库主?

你应该尝试只有一个数据副本。这听起来像你的文本文件,并“进口”他们到数据库中。但它听起来像是你的文本文件是由其他进程定期更新。

另一种方法是使数据库中的数据的规范版本。你可以在你的应用程序创建一个管理界面来更新数据库。

如果数据通过自动处理进来那么也许你可以创建一个导入脚本采取新的数据。

这可以通过命令行脚本来完成。只是这种东西添加到您的setup.py

entry_points = """\
  [paste.app_factory]
  main = myapp:main
  [console_scripts]
  some_script = myapp.scripts.script:main
  another_script = myapp.any_module:some_function
  """
© www.soinside.com 2019 - 2024. All rights reserved.