Süre ile kod çalıştırma

Merhaba arkadaşlar forumda yeniyim,
Pythonda bir def çalıştıktan sonra sürekli olarak belirli aralıklarla (5 dakika gibi) ekrana yazı yazdırmak istiyorum. Kısacası bir döngü yazmak istiyorum ama bunu sleep ile yapmak istemiyorum sleep ile yaptığımda script süre geçene kadar yapması gereken diğer işlemleri yapmıyor bana scriptin işleyişini aksatmayacak ama 5 dakika geçtikten sonra da ekrana yazı yazdıracak bir kod lazım yardımcı olursanız çok sevinirim.
Kodum:

    def basarili(self):
        self.baglanti = True
        print("Baglanti yapildi", "Iyi gunler...")
  
        print("Baslatiliyor...")
        sleep(2)
  
        self.verileriyenile("Guncelleniyor...")

        print("Islem basarili.")

Teşekkürler.

Merhaba.

threading.Timer kullanabilirsiniz.

1 Beğeni

Merhaba, teşekkür ederim kısmen işe yaradı ancak kodu 1 defa çalıştırıyor 1 defa ekrana yazı geldikten sonra tekrar yazdırmıyor. Birde bunu self argümanıyla birlikte nasıl çalıştırabilirim?
Şu şekilde denedim ama olmadı:

def guncelle(self, layerEvent):
    self.guncelleniyor("guncel")
    print("Guncelleme tamamlandi.")
	
t = Timer(10.0, guncelle)
t.start()

guncelle fonksiyonunun sonunda tekrar bir Timer başlatın.

self parametresi hangi değeri alacak?

1 Beğeni

self.guncelleniyor(“guncel”)
Tam olarak bu kodu çalıştırmak istiyorum 1 saat aralıklarla

Şunu kullanın:

Timer(10.0, lambda: self.guncelleniyor("guncel"))

1 Beğeni

Merhaba, yaptım ancak hata alıyorum:
NameError: name ‘self’ is not defined

Biraz araştırdım ve bunu buldum

Bu şekilde yaptığımda çalıştı ama scriptte gecikmeler oldu durdururken, bu kod benim için sorun yaratır mı?

Kodu atın.

1 Beğeni
def guncelle(self):
    self.guncelleniyor("guncel")
    print("Guncelleme tamamlandi.")
t = Timer(10.0, lambda: self.guncelleniyor("guncel"))
t.start()

Bu şekilde yapmıştım

Bu kodda self diye bir değişken yok, ama siz self.guncelleniyor("guncel") kodunu çalıştırmak istediğinizi söylediniz:

def guncelleniyor(self, message):
    if message == "guncel":
        print(message + " Guncelleniyor")

    self.db_update()

    guncelle = all_db_update()

Sanırım siz burayı sordunuz pardon, asıl çalıştığı yer burası ben self.guncelleniyor(“guncel”) kodunu 1 saat aralıklarla çalıştırmak istiyorum bu yüzden size kodu eklediğim yeri atmıştım tam olarak nereye, ne şekilde eklemem gerek bu kodu

self’in tanımlı olduğu bir yere eklemeniz lazım. Tam olarak nereye eklemeniz gerektiğine siz karar vereceksiniz, ben self’in ne olmasını istediğinizi bilmiyorum.

1 Beğeni

Teşekkür ederim yardımcı olduğunuz için.