2013-07-29 66 views
2

的我想要做的基本概念:Python的〜天/周監測的每週一次

我想它來檢查,如果它是2-5pm和週日{任何─{2小時內} 如果真它應該繼續到腳本的底部(這通過電子郵件發送我的服務器狀態),並在36小時內重置計時器/它的活動搜索以查看它的星期日下午2點到5點是否已經看到幾個不同的定時器的方法,但我找不到一個主動掃描,看看它是否是指定的時間(在這種情況下,如果它檢查是否在每個2小時的星期天的2-5點是理想的)

任何幫助,將不勝感激 尊敬, 詹姆斯的

編輯: 得到它輸出我轉貼之後正確的信息,剛剛添加的時間模塊笑:P

腳本到目前爲止,我還沒有實現。 py啓動部分尚未更新的帖子,當我得到那forsure。

import datetime 
import croniter 
import crontab 
import time 

c = croniter.croniter("0 20,21,22 * * SUN") 
next_due_date = c.get_next(datetime.datetime) 

print c.get_next(datetime.datetime) 

while True: 
    now = datetime.datetime.now() 
    if now > next_due_date: 
     do_something() 
     time.sleep(60 * 60 * 36) 
    else: 
     time.sleep(60 * 60 * 2) 

EDIT2:我在添加文件路徑的嘗試:在KeyError異常

import datetime 
import croniter 
import crontab 
import time 

c = croniter.croniter("0 20,21,22 * * SUN ./line.py") 
next_due_date = c.get_next(datetime.datetime) 

print c.get_next(datetime.datetime) 

while True: 
    now = datetime.datetime.now() 
    if now > next_due_date: 
     do_something() 
     time.sleep(60 * 60 * 36) 
    else: 
     time.sleep(60 * 60 * 2) 
+0

你嘗試過什麼了嗎? –

+0

現在我只是查找他使用的一些命令,我​​花了一些時間去開始,我只是在幾天前開始:P但是我在其他語言方面有一點經驗,所以它可以很好地轉化相對性 –

回答

1

結果我不清楚自己想做的事,但是,據我瞭解,它似乎使用cron任務就足夠了。

你想在星期日2PM開始你的腳本嗎?如果是的話,那麼這樣一個crontab可以這樣做:0 14 * * SUN ./my_script.py

如果你想檢查下一個星期日2-5PM會是什麼時候,你可以用croniter模塊工作。這裏有一個例子:

c = croniter.croniter("0 14,15,16 * * SUN") 
print c.get_next(datetime.datetime) # will output 2013-08-04 14:00:00 

隨着當下週日2PM將是知識,你可以寫這樣的循環:

c = croniter.croniter("0 14 * * SUN") 
while True: 
    now = datetime.datetime.now() 
    if now > next_due_date: 
     do_something() 
     next_due_date = c.get_next(datetime.datetime) 
     time.sleep(60 * 60 * 36) 
    else: 
     time.sleep(60 * 60 * 2) # sleep 2 hours 
+0

是的,那與now.weekday()(0到6之間的值,所以你希望它在星期天是6)應該做的伎倆! – Jblasco

+0

你可以在結束時扔36小時的睡眠嗎?即時通訊做的東西自動取款機,所以我不能測試腳本正確的這一刻,但我真的需要它等待36小時的循環本身之前,基本上確保它不會更多,然後一次星期日 –

+0

我只是想謝謝你的任何信息是真正的對我的進步和我一般教育的發展至關重要。我完全喜歡解剖這些花絮,直到我明白他們:) –

相關問題