folder Tahribat.com Forumları
linefolder Python
linefolder Python İnstant Checker



Python İnstant Checker

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek

    Bir betik olsun, arkaplanda 7/24 çalışsın.

    Mysql'de zamazingo tabloma her yeni veri eklendiğinde ekrana veriyi yazıp dinlemeye devam etsin.

    Sürekli sorgu gönderip yormak istemiyorum makineyi.

     

    Veri herhangi bir şekilde herhangi bir yerden eklenebilir. Manuel olarak da girilebilir.

     

    Her saniye gelebilir yeni satır.

     

    Bu mümkün mü? Yoksa döngüye sokup sürekli select ile sorgulatmak şart mı?


    ,¶∆
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek

    rup


    ,¶∆
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    AMpul
    AMpul's avatar
    Kayıt Tarihi: 31/Aralık/2009
    Erkek

    haci en az bildigim konu bu db olaylari ama yazayim yine de aklima geleni. inserte sql trigger atayabilirsin ve bu trigger ile ister baska bir tabloya ister 'into outfile' ile bir dosyaya bir bildirim yazabilirsin. python script in de bu dosyayi ya da tabloyu kontrol eder belli araliklarla.

    https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html

    trigger disinda bir callback mekanizmasi da vardir belki aratip ogren.


    What I cannot build, I do not understand. — Richard Feynman
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek
    AMpul bunu yazdı

    haci en az bildigim konu bu db olaylari ama yazayim yine de aklima geleni. inserte sql trigger atayabilirsin ve bu trigger ile ister baska bir tabloya ister 'into outfile' ile bir dosyaya bir bildirim yazabilirsin. python script in de bu dosyayi ya da tabloyu kontrol eder belli araliklarla.

    https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html

    trigger disinda bir callback mekanizmasi da vardir belki aratip ogren.

    Atiyorum mysql "1.dat" isimli dosya yazacak, python o dosyanin olup olmadigina gore islem yapacak. Isi bitince silecek o dosyayi.

    Mantikli aslinda ama ard arda veri girildigi zaman cortluyor.

    Arastirayim kalbek olayini biraz.


    ,¶∆
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    Hocam bu iş için internette farklı yöntemler var (https://stackoverflow.com/questions/307438/how-can-i-tell-when-a-mysql-table-was-last-updated) genel yaklaşım, ya veritabanına insert sonrası çalışan bir trigger yazıp kendi servisini bilgilendireceksin (mssql'de bunun için örnek https://stackoverflow.com/questions/15225147/watch-for-a-table-new-records-in-sql-database) yada veritabanda (mysql için) ilgili tablonun last_update'ini kontrol edip işlem yapıcaksın (ilk stackoverflow linkinde bahsediyor). Bunlar işini görebilir bence. 


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yunusemre
    yunusemre's avatar
    Kayıt Tarihi: 22/Ağustos/2016
    Erkek
    end bunu yazdı
    AMpul bunu yazdı

    haci en az bildigim konu bu db olaylari ama yazayim yine de aklima geleni. inserte sql trigger atayabilirsin ve bu trigger ile ister baska bir tabloya ister 'into outfile' ile bir dosyaya bir bildirim yazabilirsin. python script in de bu dosyayi ya da tabloyu kontrol eder belli araliklarla.

    https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html

    trigger disinda bir callback mekanizmasi da vardir belki aratip ogren.

    Atiyorum mysql "1.dat" isimli dosya yazacak, python o dosyanin olup olmadigina gore islem yapacak. Isi bitince silecek o dosyayi.

    Mantikli aslinda ama ard arda veri girildigi zaman cortluyor.

    Arastirayim kalbek olayini biraz.

    Çok stabil olmaz ama basitçe şöyle bir şey yapabilirsin. Dat'ı bir array olarak düşün. Boş hali [] olsun, veri geldikçe [{ilk_veri}]                [{ilk_veri}, {ikinci_veri}] şeklinde gelişsin. Okudukça boşaltırsın.

    Diğer seçenek,

    Trigger ile parametre göndererek uygulamayı çağırmak. 

    DELIMITER @@
     
    CREATE TRIGGER Test_Trigger 
    AFTER INSERT ON MyTable 
    FOR EACH ROW 
    BEGIN
     DECLARE cmd CHAR(255);
     DECLARE result int(10);
     SET cmd=CONCAT('sudo /home/sarbac/hello_world ','Sarbajit');
     SET result = sys_exec(cmd);
    END;
    @@
    DELIMITER ;

    http://crazytechthoughts.blogspot.com.tr/2011/12/call-external-program-from-mysql.html adresinden alıntıdır, detaylar burada mevcut.

    Parametreyle ikinci kez çalışan uygulama, veriyi işler ve kendini sonlandırır. Herhangi bir timinge gerek yok. Main uygulaman ne iş yapıyor bilmiyorum ama sadece bu gelen veriyi yakalamaksa niyetin backgroundda sürekli çalışması bile gerekmeyebilir böylece.


    "Programcılar saatler boyunca çalışmak zorunda kalmalarına engel olacak sistemler tasarlamaya saatler boyunca uğraşırlar." David Allen
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek
    yunusemre bunu yazdı
    end bunu yazdı
    AMpul bunu yazdı

    haci en az bildigim konu bu db olaylari ama yazayim yine de aklima geleni. inserte sql trigger atayabilirsin ve bu trigger ile ister baska bir tabloya ister 'into outfile' ile bir dosyaya bir bildirim yazabilirsin. python script in de bu dosyayi ya da tabloyu kontrol eder belli araliklarla.

    https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html

    trigger disinda bir callback mekanizmasi da vardir belki aratip ogren.

    Atiyorum mysql "1.dat" isimli dosya yazacak, python o dosyanin olup olmadigina gore islem yapacak. Isi bitince silecek o dosyayi.

    Mantikli aslinda ama ard arda veri girildigi zaman cortluyor.

    Arastirayim kalbek olayini biraz.

    Çok stabil olmaz ama basitçe şöyle bir şey yapabilirsin. Dat'ı bir array olarak düşün. Boş hali [] olsun, veri geldikçe [{ilk_veri}]                [{ilk_veri}, {ikinci_veri}] şeklinde gelişsin. Okudukça boşaltırsın.

    Diğer seçenek,

    Trigger ile parametre göndererek uygulamayı çağırmak. 

    DELIMITER @@
     
    CREATE TRIGGER Test_Trigger 
    AFTER INSERT ON MyTable 
    FOR EACH ROW 
    BEGIN
     DECLARE cmd CHAR(255);
     DECLARE result int(10);
     SET cmd=CONCAT('sudo /home/sarbac/hello_world ','Sarbajit');
     SET result = sys_exec(cmd);
    END;
    @@
    DELIMITER ;

    http://crazytechthoughts.blogspot.com.tr/2011/12/call-external-program-from-mysql.html adresinden alıntıdır, detaylar burada mevcut.

    Parametreyle ikinci kez çalışan uygulama, veriyi işler ve kendini sonlandırır. Herhangi bir timinge gerek yok. Main uygulaman ne iş yapıyor bilmiyorum ama sadece bu gelen veriyi yakalamaksa niyetin backgroundda sürekli çalışması bile gerekmeyebilir böylece.

    Bgde sürekli çalışmasını şu nedenle istiyordum, aynı anda 10 farklı yerden veri gelebilir. Bunun için 10 tane çalışmamalı app. Sıraya sokulmalı. Aksi halde crash yiyor zaten.

    Aklımın detaylarını yazacağım akşama doğru.


    ,¶∆
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek

    buna bir bak hocam

    http://python-mysql-replication.readthedocs.io/en/latest/events.html


    https://www.youtube.com/watch?v=K7z3590-Mt0
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek
    end bunu yazdı
    yunusemre bunu yazdı
    end bunu yazdı
    AMpul bunu yazdı

    haci en az bildigim konu bu db olaylari ama yazayim yine de aklima geleni. inserte sql trigger atayabilirsin ve bu trigger ile ister baska bir tabloya ister 'into outfile' ile bir dosyaya bir bildirim yazabilirsin. python script in de bu dosyayi ya da tabloyu kontrol eder belli araliklarla.

    https://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html

    trigger disinda bir callback mekanizmasi da vardir belki aratip ogren.

    Atiyorum mysql "1.dat" isimli dosya yazacak, python o dosyanin olup olmadigina gore islem yapacak. Isi bitince silecek o dosyayi.

    Mantikli aslinda ama ard arda veri girildigi zaman cortluyor.

    Arastirayim kalbek olayini biraz.

    Çok stabil olmaz ama basitçe şöyle bir şey yapabilirsin. Dat'ı bir array olarak düşün. Boş hali [] olsun, veri geldikçe [{ilk_veri}]                [{ilk_veri}, {ikinci_veri}] şeklinde gelişsin. Okudukça boşaltırsın.

    Diğer seçenek,

    Trigger ile parametre göndererek uygulamayı çağırmak. 

    DELIMITER @@
     
    CREATE TRIGGER Test_Trigger 
    AFTER INSERT ON MyTable 
    FOR EACH ROW 
    BEGIN
     DECLARE cmd CHAR(255);
     DECLARE result int(10);
     SET cmd=CONCAT('sudo /home/sarbac/hello_world ','Sarbajit');
     SET result = sys_exec(cmd);
    END;
    @@
    DELIMITER ;

    http://crazytechthoughts.blogspot.com.tr/2011/12/call-external-program-from-mysql.html adresinden alıntıdır, detaylar burada mevcut.

    Parametreyle ikinci kez çalışan uygulama, veriyi işler ve kendini sonlandırır. Herhangi bir timinge gerek yok. Main uygulaman ne iş yapıyor bilmiyorum ama sadece bu gelen veriyi yakalamaksa niyetin backgroundda sürekli çalışması bile gerekmeyebilir böylece.

    Bgde sürekli çalışmasını şu nedenle istiyordum, aynı anda 10 farklı yerden veri gelebilir. Bunun için 10 tane çalışmamalı app. Sıraya sokulmalı. Aksi halde crash yiyor zaten.

    Aklımın detaylarını yazacağım akşama doğru.

    Olay tamamen fantezik, yazmaya üşendim amk. 

    Yardımlarınız için teşekkürler.


    ,¶∆