我有一個遞歸運行的程序,雖然有95%的時間不是問題,但有時如果我花費的時間太長,我會遇到遞歸限制。在我的努力轉化爲和迭代的代碼,我決定嘗試沿着此線的東西:python無限循環和time.sleep()有什麼不對嗎?
while True:
do something
#check if task is done
if done:
print 'ALL DONE'
break
else:
time.sleep(600)
continue
我測試過我的代碼,它工作正常,但我想知道是否有什麼內在的錯誤這種方法?如果運行時間太長,它會吃掉內存還是使機箱崩潰?
在此先感謝!
編輯:
該「做什麼」我指的是定期檢查某些關鍵字的日誌文件,數據不斷被寫入日誌文件。一旦這些行被寫入,發生在不同的時間長度,我讓腳本執行某些任務,例如將特定的行復制到單獨的文件中。
我原來的程序有兩個功能,一個定期調用自身,直到找到關鍵字,然後調用'dosomething'函數。完成後,該做些什麼功能,然後將調用原有的功能,而這會發生,直到任務結束或我打的遞歸限制
它在做什麼?取決於你在做什麼,可能有或可能沒有更好的方法。看起來您正在等待某些事情完成,在這種情況下,您的代碼可能會有一個界面自動等待,直到完成而無需不斷檢查進度。 – user2357112
你希望通過睡眠而不是立即回到循環中獲得什麼? – jwodder
@jwodder無需任何理由就會吃掉CPU時間。 –