【问题标题】:change configuration of CherryPy base service without restart无需重启即可更改 CherryPy 基础服务的配置
【发布时间】:2011-03-24 16:25:08
【问题描述】:

我有基于 CherryPy 的 Web 服务,它根据 GET 请求查询从平面文件中提取数据。它用作其数据库的文件列表在基于 yaml 的配置文件中指定。

现在每次我想从该 yaml 配置文件中添加/删除文件时,我都会编辑 yaml 配置文件,然后重新启动服务。

对我来说实现方案最简单的方法是什么,这样每次我将配置文件修改为配置文件时,Web 服务都会自动检测更改并重新加载该文件的内容,而无需重新启动。

我的目标是完全避免停机,并且不打扰正在运行查询的客户。

【问题讨论】:

  • 当您说“来自文件的数据”时,这是否意味着您正在使用 staticdir 工具?或者,在从页面处理程序以 HTML 格式提供数据之前,您是否阅读了所有文件并进行了某种转换?读取每个请求的文件是否成本太高?每个问题的答案都将指导您的主要问题的答案。

标签: config cherrypy


【解决方案1】:

如果您的服务在使用 mod_rewrite 的 apache 之后: 创建两个不同端口的应用实例,当 *mod_rewrite* 配置为向实例 A 重写请求时,您可以更改实例 B 配置文件,自动重启后,您可以更改 apache 配置文件,然后发出:

/etc/init.d/apache reload

然后更改实例 A 的配置文件。

如果您的cherrypy 是独立的,您可以将代理服务器与上述两个实例一起使用。

【讨论】:

  • 我使用了另一种解决方案。我们所做的是,每次需要将新文件添加到配置中时,我们都会在我们的应用程序中查询一个 URL,其唯一目的是使用新文件更新配置并将文件的内容添加到数据库中。
猜你喜欢
  • 1970-01-01
  • 2015-11-16
  • 1970-01-01
  • 2015-02-05
  • 1970-01-01
  • 2017-03-07
  • 2011-08-10
  • 2015-04-02
  • 2011-11-07
相关资源
最近更新 更多