setInterval(() => {
connection.query("SELECT date from table", (err, res) => {
if (res == Date()) {
connection.query("UPDATE table SET bit = 1")
}
})
}, 1000)gibi
Node Js Sürekli Veritabanına Query Gönderme??
17
●323
- 18-01-2020, 23:34:54Üyeliği durdurulduSaniyede bir kontrol etmek istiyorsaniz, setInterval methodu ile surekli db yi kontrol edecek bir query yapabilirsiniz,
- 18-01-2020, 23:35:34Şöyle hocam kullanıcı bu datetimeın tutulduğu tabloya kendi panelinden veri ekleyebiliyor. Veriyi eklediğinde yeni bir veri ve yeni bir saat ortaya çıkıyor. Bu şekilde sürekli her saati tutmak mümkün olmayacak seviyeye geliyor.L0pht adlı üyeden alıntı: mesajı görüntüle
Deniyorum hocam ama bu kodu ben frontend de mi yapayım node js tarafında mı uygulayayımyrr3bn14r adlı üyeden alıntı: mesajı görüntüle - 18-01-2020, 23:40:19MySQL tarzi bir RDBMS ise trigger konusunu arastirman lazim. ON INSERT ve ON UPDATE tarz bir sey isini gorur. Zamani da NOW() fonksiyonu ile aliyorsun galiba. Onun disinda kullandigin DB sistemini bilmeden pek bise diyemem. Mongo'da degisiklikleri izleyebiliyorsun mesela anlik olarak.
- 18-01-2020, 23:43:55Tabii ki hocam. Aslında benim yapmak istediğim şey bir hatırlatma özelliği.yrr3bn14r adlı üyeden alıntı: mesajı görüntüle
Hatırlatma özelliğinde kullanıcı bir tarih ve saat girecek panelden. Bir de hatırlatma metni girecek. Bu girdiği değerler veritabanına gönderilecek ve kayıt edilecek.Veritabanında bu değerlerin yanı sıra bir de "hatirlatildimi" diye bir değer tutuyorum. Bu değer ise bit bir değer. Yani eğer 1 ise hatırlatıldı değil ise hatırlatılmadı olarak tanımlı.
Eğer normal saatimiz veritabanındaki bu saat ile uyuşursa bit değer 1 yapılacak ve direkt kullanıcı panelinde bir notification bar göstereceğim. Bunu ajax ile yapabiliyorum bar mevzusunu. Ancak arkaplanda sürekli zamanı kontrol etmem gerekiyor. var date = new Date() yaptığımda o andaki saati tutabiliyorum sadece backendde. Bunun bir çözümünü arıyorum açıkçası. Nasıl aynı anda zamanı kontrol ediyorken aynı anda da database deki zamanla eşleşiyor mu diye kontrol edebilirim? Eğer yapabilirsem gerisi gelecek zaten.
Umarım anlatabilmişimdir hocam. İsterseniz canlı konuşalım anlatayım derdimi - 18-01-2020, 23:45:44Birden fazla veri için;
Bir üstte yazdığıma ek olarak;
Sorgu : select * from datatablosu where userid=2 and bit=0 gibi,
Gelen verileri bir array a alip (id ve zamanlari) ayni sekilde intervalde kontrol ettirip güncellerim.
Tabi ek olarak kullanıcı işlem yaptığında oluşan verinin de diziye eklenmesi gerekiyor. Alternatif olarak ise diziyi boşaltıp yeniden sorgu yapılması gerekiyor. - 18-01-2020, 23:49:10Şöyle hocam Mssql kullanıyorum ve aynı zamanda triggerlar konusunda da bilgim var. Dediğiniz sadece veritabanı üzerinde işlemekte. Onu da denedim fakat benim server tarafında kontrolü sağlamam lazım. Veritabanından servera veri dışında bir şey gönderemediğimi düşünüyorum açıkçası. Eğer gönderebiliyorsak onu yapayım hemen vallahi. Teşekkürler cevabınız için yine deberkantipek adlı üyeden alıntı: mesajı görüntüle
- 18-01-2020, 23:54:47Üyeliği durdurulduAnladim hocam, guzel yazmissiniz.emrecanozkan adlı üyeden alıntı: mesajı görüntüle
Bu hatirlaticinin calisacagi process icin konusacak olursak, ilk once ilgili db tablodan hatirlatmasi yapilmayan zamanlari cekip bi array' e atadigimizi dusunun yani;
var notifications = [ { date: 1579380495241, msg: 'bugun sunlar yapilacak' }, { date: 1579389456764, msg: 'bugun bunlar yapilacak' } ]sonra setinterval methoduyla her saniyeyi kontrol edip bu yukaridaki notifications arrayindaki element' lerden cakisan olursa o element icin istediginiz islemi yapabilirsiniz, boylelikle surekli db kontrolu yapmamis olursunuz ve process icinde her saniyede basit bi if kontrolu ile array taramis olursunuz, ayrica sanirim notification sistemi uzerinde calisiyorsunuz bunun ile ilgili benzer ornekleri de internette yabanci kaynaklardan arastirabilirsiniz,
https://www.google.com/search?rlz=1C...10.gdW0CVCPRV0
Son olarak, db uzerinden bir kontrol yapmadan da socket.io ile gondereceginiz notificationlari client tarafinda direk alip isleyebilirsiniz, ayni zamanda db' ye de ekleyebilirsiniz bunun icinde soyle bir ornek var.
https://stackoverflow.com/questions/...ations-node-js - 19-01-2020, 00:00:54Tamamdır hocam çok teşekkürler. Eğer sorun yaşarsam size ulaşabilir miyim acaba?yrr3bn14r adlı üyeden alıntı: mesajı görüntüle