2015-11-20 55 views
0

我正在嘗試構建一個可通過配置文件(可能是XML)進行配置的安全系統。其中一個可配置選項是系統應錄製時的白天/夜晚的幾小時。每週的每一天都會有一個或多個條目。我試圖在python中實現這不是我熟悉的語言。我的主要問題是如何幹淨地實現這一點。基本上,該計劃將是這個樣子:可配置計時器

def check_if_on(): 
    """ 
    check if the system should be on based on current time and config file 
    returns True iff system should be on, False otherwise 
    """ 
    ... 

# main loop 
while True: 
    # do something 
    # do something else 
    if check_if_on(): 
     # do something 
    else: 
     # do something else or nothing 
    time.sleep(10) 

配置文件看起來像:

<on-times> 
    <on day="1" time="1900"/> 
    <off day="2" time="0700"/> 
    <on day="2" time="1800"/> 
    <off day="3" time="0900"/> 
</on-times> 

比我有更多的經驗有朋友說來實現開/關時間爲定時在隊列中的事件,但我不知道這是一個好主意,甚至該怎麼辦呢

回答

0

如果超級精確的計時是沒有必要的,你可以運行它每分鐘的cron作業以節省一些CPU週期。如果時間超過配置的時間,請做點什麼,否則什麼都不做。

+0

thnx和抱歉,如果我沒有說清楚。沒有必要運行cron,因爲程序會一直運行,並且會執行其他操作(因此True循環)。我的問題是如何最好地實現檢查是否應根據配置文件打開或關閉記錄的邏輯。我可以使用一些混亂,如果其他混亂,並想知道是否有更好的解決方案。例如。我朋友的建議:定時事件隊列 – user37025