2017-07-18 64 views
-2

我正在實施幾個瓶子應用程序,這些應用程序將全部運行在同一臺服務器上。我擔心在多個運行時關閉簡單瓶服務器無法正常工作的建議方法。從this snippet關機方法是:運行多個瓶子服務器並單獨關閉它們

from flask import request 

def shutdown_server(): 
    func = request.environ.get('werkzeug.server.shutdown') 
    if func is None: 
     raise RuntimeError('Not running with the Werkzeug Server') 
    func() 

我沒有看到那裏的func()方法被定義,所以也許我失去了一些東西很明顯,但如何將關機方法知道哪個服務器關機?我想通過某種參數來指定服務器。有任何想法嗎?

+0

您是否試圖關閉服務器,或者您是否嘗試禁用在同一臺服務器上運行的某些應用程序?你現在如何運行不同的應用程序? (從'request.environ.get(..)'分配'func',它從werkzeug中檢索關閉函數,然後調用它。) – MatsLindh

+2

在我看來,'func'是'request.environ返回的可調用對象。得到()'。 – quamrana

+0

注意事項:這些片段是非官方的,未經維護的,不屬於Flask文檔的一部分。 – davidism

回答

0

該應用程序只與服務它的服務器進行交互。它不知道在別處運行的其他服務器。 request.environ('werkzeug.server.shutdown')指向一個關閉處理請求的服務器的函數。

儘管Werkzeug dev服務器碰巧有上述黑客可以關閉服務器,但這對WSGI服務器來說並不是標準的。開發服務器不應該用於生產。在應用程序中沒有關閉WSGI應用程序(在這種情況下是Flask)的標準方法。無論如何,永遠不應該有這樣做的理由。

相關問題