2013-05-19 112 views
0

我很困惑,爲什麼bottlepy服務器不運行:爲什麼沒有瓶頸的服務器負載?

if __name__ == '__main__': 
    start = datetime.now() 
    db = Database(force_refresh_cache=False, 
        timestamp_filename='timestamp.pickle', 
        schema_filename='schema.pickle') 
    print datetime.now(), 'Took:', (datetime.now() - start).total_seconds() 

    run(host='localhost', port=80, reloader=True, debug=True) 

當我註釋掉數據庫建設;服務器運行。

在這兩種情況下,我都會得到時間戳「Took:[seconds]」,表示之前沒有錯誤發生。

回答

1

問題是模塊級代碼,並且可能是您正在使用reloader開關的事實。檢查this

所有模塊級代碼在重新載入器打開時至少運行兩次。我還沒有測試過這個,但這樣做會很有意義,因爲如果數據庫已經被捆綁,它將無法產生一個孩子。

試試這個:

if __name__ == '__main__': 
    start = datetime.now() 
    db = Database(force_refresh_cache=False, 
        timestamp_filename='timestamp.pickle', 
        schema_filename='schema.pickle') 
    print datetime.now(), 'Took:', (datetime.now() - start).total_seconds() 

    run(host='localhost', port=80, debug=True) 
+0

感謝的是,現在很想寫一個函數,以確保數據庫始終爲每個端點構建...不幸的是,我需要裝點每個端點與此有關。如果需要,是否有其他選擇:'reloader = True'? –

+0

我發現reloader的功能無論如何都是非常麻煩的。你可以添加一個持久性文件來指示數據庫是否已經加載,以確保只加載了一個實例,但我想不出任何其他的東西。 – Tadgh