Merhaba,
Youtube’dan video detaylarını çeken fonksiyonun yeni eklenecek videoları çekebilmesi için belli aralıklarla çalışmasını istiyorum, bunun için ne önerirsiniz, nasıl bir yöntem kullanılabilir(mesela haftada veya 24 saate bir şeklinde)
Şöyle bir kod buldum aslında, bunun daha uygun bir yolu var mıdır?
from time import sleep
from threading import Thread
def get_something():
print("..some details..")
def repeat_again(what, time):
while True:
what()
sleep(time)
if __name__ == '__main__':
do_it = Thread(target=repeat_again, args=(get_something, 86400))
# 86400 second == 24 hours
do_it.start()
Uygulanabilir elbette, fakat tek makinada calisan “scriptler” icin gereksiz karmasiklik olabilir.
Oldurulmeyecek bir script icin while True: yap(); time.sleep(86400) yeter, ornekteki gibi ek thread acmaya gerek olmamasi lazim.
Oldurulur, degistirilir, vs. diyorsan yillarin cron'u var, periyodik calistirmada akla gelen ilk isim.
“Sadece ayakta tutsun, periyodu ben hallederim” diyorsan systemd unit’i veya benim ufak projelerde cok sevdigim supervisord kullanabilirsin. Fakat 24 saat gecmeden olup ayaga kalktigi durumlar icin bir yerlere son calisma zamanini yazman gerekir.