2011-03-15 35 views
2

我们正在构建在Python的Web应用程序,这是并不少见需要3个或更多的服务是运行(搜索,DB(S),任务队列,Web应用程序等),只是项目工作本地。在新控制台中手动触发每个服务(然后记住在更改代码时重新启动它)速度慢且容易出错。如何在本地开发时管理多种服务?

理想情况下,我希望能够给开发者在我们的项目中单个命令,将:

  • 启动所需的所有服务
  • 日志任何输出到控制台
  • 重启服务自动如果代码更改(通过类似pywatch或inotify)

回答

0

我个人喜欢supervisord。我在编写一个结合了nginx和龙卷风的应用程序时使用了它。它将处理您定义的服务的启动和监视,并为您提供一个界面来将它们作为一个组来控制。

它没有文件监控内置的,但有可能是一个插件(更新:似乎没有成为一个),或者你可以通过脚本发送事件看文件。

+0

没有找到一个插件,但[看门狗(http://pypi.python.org/pypi/watchdog)效果很好。我增加了一个额外的导师计划,像这样的脚本:'watchmedo壳命令--patterns = “* PY。” --recursive --command = 'supervisorctl重启some_service'/路径/要/一些/服务/' – Pete 2011-03-15 18:09:07

+0

@皮特 - 真好!我不知道watchmedo脚本,但它看起来会是完美的。 – JimB 2011-03-15 18:18:45

相关问题