2012-11-07 98 views
2

我想創建一個線程(可能在未來的一個進程),它繼承了所有的django env和設置,但是會自行進行監視。理想情況下,我希望在Django服務器完成初始化時觸發它。我已經嘗試了以下兩種方法。第一個似乎每次發出請求都運行Middleware初始化程序,並且它們都存在問題,即只有在對服務器發出第一個請求時纔會觸發我的啓動代碼。服務器完成初始化後,如何在Django中運行啓動代碼?

Where to put Django startup code?

Running startup code right after Django settings? (also for commands)

我也看到有人在一些信號檢查這個確切的使用情況,但也只會是在Django 1.6或更高版本可用。

任何想法如何解決這個問題?

謝謝!

回答

2

我從來沒有這樣做,但它看起來像你可以在 Django admin註冊自己的命令,所以你可以使自己的類來 - 也許 - 從BaseRunserverCommand從runserver.py模塊繼承和重載run方法觸發你的線程或進程。

(當前設置在BaseRunserverCommand似乎可用 - 看inner_run方法,我認爲你可以簡單地使用os.environ訪問當前的環境。)

相關問題