2010-05-17 72 views
3

我想運行一個程序,每4小時運行一個函數。 這樣做最少的方法是什麼?在python上安排任務

+0

消費最少?請澄清 – rossipedia 2010-05-17 19:26:23

+2

您使用的是什麼操作系統?如果是unix,那麼答案很可能是cron ... – unutbu 2010-05-17 19:26:56

+2

什麼平臺?在Unix/Linux上,at/cron機制是正確的方式。在Windows上,你必須創建一個服務,並註冊它的UUID並安排它在啓動時啓動,然後將你的長子發送到Redmond或者像這樣的sumptin ... – msw 2010-05-17 19:28:05

回答

6

Simlest方式(因爲職位被加上蟒蛇在Python)我能想到的:

import time 

while True: 
    do_task() 
    time.sleep(4 * 60 * 60) # 4 hours * 60 minutes * 60 seconds 
+0

確定,這工作得很好,但是我很困擾使用CPU功率,或者它效率非常高證明? – Asaf 2010-05-17 19:35:17

+1

「效率證明?」那是什麼意思?你覺得它在睡覺時使用CPU嗎? – 2010-05-17 20:42:10

+3

說它只是讓睡眠過程安然無恙。幾乎沒有CPU使用,直到它醒來。 – rossipedia 2010-05-17 21:02:21

3

使用構建在計時器線程:

from threading import Timer 

def function_to_be_scheduled(): 
    """Your CODE HERE""" 

interval = 4 * 60 * 60 #interval (4hours) 

Timer(interval, function_to_be_scheduled).start() 
+0

''function_to_be_scheduled'只能運行一次嗎?而不是重複*每* 4小時。 – k0pernikus 2013-02-21 04:33:43