600 saniyede bir çalışacak, fakat hata verirse tekrar deneyip, tekrar denemeden sonra 600 saniye bekleyip, döngüye devam edecek anladığım kadarıyla.
Yapılacak işler için bir fonksiyon tanımlayıp, hem try hem de except içerisinde bu fonksiyonu çağırıp yapabilirsin. Try'daki fonksiyon çalışırken exception'a düşerse, try içerisindeki sleep hiç çalışmamış olur. Yani iki kere 600 saniye beklemez.
Gerçek zaman saniyeye göre, beşinci saniyelerde exception verecek örnek bir kod yazdım.
[CODE lang="python" title="Örnek"]from time import sleep
from datetime import datetime
def fun():
now = int(datetime.now().strftime("%S"))
if now % 5 == 0:
raise Exception("Error!")
else:
print("Working...")
while True:
try:
fun()
sleep(1) # eger fun adlı fonksiyonda hata olursa, buradaki sleep hic calismadan direkt except kismina atlar.
except:
print("An error occured. Trying again...")
sleep(1) # hata sonrasi, fonksiyon tekrar cagrilmadan once, bekleme suresi koyulabilir (600 saniye kadar uzun olmasina gerek yok, birkac saniyelik bir önlem amacli. Birinci ve ucuncu sleep'ler 600 saniye olacak sekilde dusunebilirsin).
fun()
sleep(1) # hata sonrasi tekrar calistiktan sonra 600 saniye bekler.[/CODE]