2011-03-24 86 views
1

我有基于CherryPy的web服务,它基于GET请求查询来从平面文件中提取数据。它用作数据库的文件列表在基于yaml的配置文件中指定。更改CherryPy基本服务的配置而不重新启动

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

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

我的目标是完全避免停机时间并且不会中断运行查询的客户。

+0

当你说“来自文件的数据”是否意味着你正在使用staticdir工具?或者,您是否在读取页面处理程序中的HTML之前,先阅读所有文件并进行某种转换?阅读每个请求中的文件会花费太多吗?每个人的答案都会指导你回答你的主要问题。 – fumanchu 2011-03-24 19:27:49

回答

0

如果您的服务位于apache后面,请使用mod_rewrite: 用不同的端口创建两个应用程序实例,并且当* mod_rewrite *配置为重写实例A的请求时,可以在auto-重启,你可以更改apache配置文件,然后发出:

/etc/init.d/apache reload 

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

如果您的cherrypy是独立的,您可以使用提到的两个实例的代理服务器。

+0

我使用了另一种解决方案。我们所做的是,每次需要将新文件添加到配置中时,我们都会在应用程序中查询URL,其唯一目的是使用新文件更新配置并将文件内容添加到数据库。 – 2011-04-06 17:10:57

相关问题