+ Cevap Yaz
7 sonuçtan 1 ile 7 arası gösteriliyor

Konu: Belirli zaman aralıklarında bir fonksiyonu çağırma

  1. #1
    Üye
    Üyelik Tarihi
    02/2004
    Mesaj
    25

    Belirli zaman aralıklarında bir fonksiyonu çağırma

    Merhabalar,

    Ben örneğin 10 dakikada bir otomatik olarak konsola "Merhaba Dünya" yazdırmak istiyorum. Yani script'imi çalıştıracağım ve script bundan sonra 10 dakikada bir konsola "Merhaba Dünya" yazdıracak. Bunu nasıl yapabilirim? Ha bir de bu 10 dakikalık süreyi beklemeden kesebilmeliyim olayı, yani "Eğer 10 dakika beklemek istemiyorsanız C tuşuna basınız" gibi birşey de olmalı.

    Timer diye bir metod olmasına rağmen bu metod kendisine verilen sürenin sonunda fonksiyonu bir kereliğine çağırıyor ve bir daha hiç çağırmıyor. Sanıyorum bunu düzeltmenin de bir yolu yok.

    Bir de sleep metodu var ama ben bu 10 dakikalık işlemi istediğim zaman kesebilmek istiyorum. Sleep'i nasıl interrupt ile kesebiliriz bulamadım.

    Birkaç forumda daha sorulmuş benzer bir soru ancak kimse tam bir yanıt verememiş İlginç geldi aslında çok basit gibi gözüken bir işlem

  2. #2
    Agresif Üye turker Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    07/2002
    Mesaj
    6,167

    bkz: crontab

  3. #3
    Üye
    Üyelik Tarihi
    02/2004
    Mesaj
    25

    Peki bu bahsettiğim işlemi Python ile yapmanın bir imkanı yok mudur, yani illa ki Python dışında birşeyler mi kullanmam gerekiyor crontab gibi. crontab'ı tam bilmiyorum ama araştırdığıma göre Python diliyle ilgili birşey değil. Hatta Windows'ta da çalışmıyormuş Windows'ta başka birşey varmış onun yerine. Ben saf Python ile bu işi halletmek istiyordum...

  4. #4
    Eski Cevizci myavuzselim Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    05/2004
    Mesaj
    950

    Ihtiyacin olan sey bir Thread. Thread'ler birden fazla isi ayni anda yapmak icin kullaniliyor. Bir bakayim dedim python Thread'lerine, soyle birsey yaptim:

    Kod:
    from threading import Thread
    
    import sys
    import time
    
    class YazDur(Thread):
        
        def __init__(self, duraklama):
            Thread.__init__(self)
            self.duraklama = duraklama
            self.i = 0
    
        def run(self):
            while True:
                print self.i, 'Merhaba'
                time.sleep(self.duraklama)
                self.i += 1
    
    def main():
        print 'Bitirmek icin "kapan" yaziniz.'
        yaz_dur = YazDur(3)
        yaz_dur.setDaemon(True)
        yaz_dur.start()
        while raw_input() != 'kapan':
            print 'Anlamadim ben onu. Bitirmek icin "kapan" yaziniz.'
        
    if __name__ == '__main__':
        main()
    

  5. #5
    Üye
    Üyelik Tarihi
    02/2004
    Mesaj
    25

    Teşekkürler, sanırım istediğim şey bu. Gerçi ben yeni başladım Python'a o yüzden kodda anlamadığım kısımlar var ama şuradaki Thread tutorial'ini okuyorum şimdi herhalde anlarım o kısımları da

    http://www.devshed.com/c/a/Python/Ba...ing-in-Python/

  6. #6
    Üye dkoksal Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    04/2007
    Yer
    Ankara
    Mesaj
    520

    Python kodlarının hiçbirinde hata kontrollerini görememek beni hayal kırıklığına uğratıyor. Nasıl yapılır konusunda bikaç dokümandan okuduğum bilgiler mevcut fakat açıkçası hata alındığı durumda alınan hatanın konsole bastırılmasının dahi nasıl yapıldığı konusunda arayış içerisindeyim...

  7. #7
    Üye dkoksal Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    04/2007
    Yer
    Ankara
    Mesaj
    520

    Sanırım kendi soruma kendim cevap veriyorum yine;

    Kod:
      except:
        print strftime('%H:%M:%S', gmtime())
        print 'HATA:',sys.exc_info()[0]
        sys.exit()
    

+ Cevap Yaz

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Benzer Konular

  1. Cevap: 9
    En Son Mesaj: 06/05/2006, 19:27
  2. Cevap: 2
    En Son Mesaj: 24/11/2005, 05:04
  3. Forum sitelerinde zaman zaman yaşanan yayın aksaklığı
    By ismail pala in forum Uygulama Yazılımları / Hazır Betikler
    Cevap: 5
    En Son Mesaj: 13/09/2005, 14:03
  4. Cevap: 2
    En Son Mesaj: 19/05/2005, 10:05
  5. Cevap: 1
    En Son Mesaj: 18/08/2003, 16:15

Bookmarks

Mesaj Yazma Hakları

  • Yeni mesajgöndermezsiniz
  • Cevap yazamazsınız
  • Dosya ekleyemezsiniz
  • Mesajınızı düzenleyemezsiniz