【问题标题】:Does Flask have an equivalent to Rails initializers?Flask 是否有等价于 Rails 的初始化程序?
【发布时间】:2015-10-28 17:20:03
【问题描述】:

我正在构建一个 Flask Web 应用,并希望在应用启动时运行一些后台服务。

例如,在网络应用程序中,您可以添加服务帐户、路由器 ip、服务器 ip 等。我想让一些后台服务运行网络扫描、wmi 调用和其他一些任务,以不断用相关信息更新数据库。

在 Rails 中,我在 config/initializers 中使用了初始化程序来启动一些守护进程:

# Start all the daemons to update the DB
system('script/daemon restart vs_updater.rb')
system('script/daemon restart c_fw_updater.rb')
system('script/daemon restart sans_updater.rb')
system('script/daemon restart sf_updater.rb')

Flask 有这样的等价物吗?还是应该只构建单独的脚本并以不同的方式运行它们?

【问题讨论】:

  • 对我来说,这听起来更像是一个操作问题,而不是属于 Flask 范围内的问题。我建议您查看 supervisor 以守护您的应用程序进程。
  • @LukasGraf,谢谢,这看起来是个不错的解决方案。我会阅读更多内容。
  • 刚开始看supervisor 的文档可能会让人望而生畏,但您通常可以跳过所有这些内容的 80%。也许从example like this 开始,以大致了解事物如何组合在一起,然后根据需要重新访问主管文档。

标签: python ruby-on-rails flask


【解决方案1】:

您可以在根目录下的__init__.py文件中添加命令,并使用子进程运行脚本

from subprocess import call
call("script/daemon restart vs_updater.py")

工厂 http://www.fabfile.org/

子进程 https://docs.python.org/2/library/subprocess.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    相关资源
    最近更新 更多