Python İnstant Checker
-
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ı?
-
rup
-
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.
-
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.
-
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.
-
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.
-
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.
-
buna bir bak hocam
http://python-mysql-replication.readthedocs.io/en/latest/events.html
-
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.
python instantly reading rows ram + cpu friend reading new lines in mysql with python