2011-03-15 21 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

相關問題