2013-03-10 140 views
0

我想在Django服務器啓動後執行一些python代碼。此代碼具有無限循環,並將在後臺運行直到服務器關閉。它訪問數據庫和各種互聯網服務。同時,用戶應該能夠使用前端網頁並訪問數據庫。如何在服務器啓動後執行後臺線程?

+1

@琥珀芹菜是一個複雜的異步隊列管理系統。我所需要的只是在啓動時啓動一個後臺線程 – siamii 2013-03-10 22:06:15

+0

芹菜不是在該問題上列出的唯一答案。 – Amber 2013-03-10 22:14:48

+0

您需要啓動一個線程或一個子進程。有很多選項可以做到這一點,在這裏有很多問題提出這個問題,並提供答案。 – 2013-03-10 22:17:49

回答

0

如果您需要開始在啓動一個子進程,有幾位清理:

  1. 通過「啓動」,你當一個人的Django線程開始的意思。
  2. 如果你在一個多線程代理設置下得到了Django,並且你想要有一個子進程,無論你的盒子上有多少個Django 線程正在運行,你需要以某種方式 要麼檢查你的子進程是否已經啓動,要麼 將你的'子進程'變成它的 自己的完整形成的進程/服務,並使用某種類型的守護進程管理器來啓動Django和 你的子進程。

也就是說,最容易修補的地方可能是settings.py。當Django線程啓動時,此文件/模塊將被導入一次。

如果您使用的是WSGI代理設置,那麼您也可以在wsgi.py之內執行此操作。

對於'如何開始線程'的回答,please see this one

相關問題