2014-12-07 56 views
0

目前,我正在爲python中的響應請求編寫一個服務器,並且我想要啓動另一個進程來處理每小時一次的數據。在python中啓動一個進程每小時一次

我只知道multiprocessing可以創建過程,但我不知道如何每小時創建一次?

+0

你試過time.time()函數嗎? – GLHF 2014-12-07 04:12:13

+0

我認爲'subprocess'模塊可能比'multiprocessing'更有意義。 – icktoofay 2014-12-07 04:13:21

+0

@qqvc不,我只知道time.time()可以得到當前時間,你的意思是根據time.time()%3600開始另一個進程。 – mickeyandkaka 2014-12-07 04:15:55

回答

1

Sched? Sched module定義了一個實現通用事件調度器的類:

0

讓我來向你解釋我的觀點。

while True: 
    ~~codes # this is codes you want to continue once an hour 
    sleep(3600) 

這個while循環是無窮遠,現在,一旦其過程的代碼,它會 等待3600秒,那麼它將再次處理它,它會再次等待3600 秒,直到你停止while循環。

因此,舉例來說,如果你想讓它5小時:

x=0 
while x<5: 
    ~~codes # this is codes you want to continue once an hour 
    sleep(3600) 
    x+=1 
+0

,我該如何處理請求? – mickeyandkaka 2014-12-07 04:32:30

+0

我不知道你的代碼很激動,所以我不能立即發表評論 – GLHF 2014-12-07 04:34:29

+0

如果你想這樣做在新的線程運行睡眠 – 2014-12-07 04:35:20

0

沒有必要啓動另一個進程,使用一個程序來處理每小時requests.You可以使用在Linux名爲科雷調度要做到這一點。

類型此檢查是否可用任何croontabs已經

$須藤的crontab -l 如果它說沒有安裝crontab中再加入一個。

$ sudo的crontab -e命令

然後它會問你選擇的編輯器,選擇你喜歡的任何編輯,我的選擇是納米。

旁邊添加的cron調度命令file.For你的問題,如果程序test.py,然後

添加下面一行在編輯器中打開。

「* */1 * * *蟒/path_to_test.py/test.py」

路徑是你的程序文件lies.Your計劃將喚醒每個小時處理的requests.for更多細節cron訪問此頁面。 http://impythonist.wordpress.com/2014/11/13/how-to-wake-up-a-python-script-while-you-are-in-a-sound-sleep/

如果您需要多處理能力,請使用APScheduler。

https://apscheduler.readthedocs.org/en/latest/

相關問題