Bilmek istediğin her şeye ulaş

Web sitesine arıza kayıt bölümü oluşturacağım. Daha önceden yazdığım şirket içi takip otomasyonuna entegre etmek istiyorum. Bu konuda nasıl bir algoritma oluşturabilirim?

İsteğim; web sitesinde kayıt oluşturulunca teknik serviste açık olan programın anında uyarı vermesi.Düzenle
Saniye başı sürekli Timer ile kontol etmek eski bir yöntemdir. Server için ağır iş yükü getirebilir. Bunun yerine HTML5 WebSocket apisinden faydalanabilirsin. Bu yöntemle server ile client arasında sürekli açık bir bağ oluşturulur. Serverda bir değişiklik olduğu zaman clientin bundan haberi olur.

Eğer .NET ortamında uygulama geliştiriyorsan SignalR javascript kütüphanesini kullanabilirsin. Bu kütüphane ile WebSocket'i çok daha rahat kullanabilirsin. Şöyle örnekleyim server'da değişiklik olduğunda projen içerisindeki bir method'a erişebilirsin ;)

github.com/signalr/signalr/blob/master/releasenotes.md

  • Paylaş
Client uygulamaya (Teknik Servis tarafındaki programa) bir Timer ekle ve database'e belli aralıklarla sorgu yaparak yeni kayıt olup olmadığını kontrol etsin.

Bu işlemi gerçekleştirirken Timer'ın Interval'inin çok küçük olmamasına dikkat et, SQL'i çok yormasın. Mesela minimum dakika başı yada 2 dakikada bir makul bir zaman aralığı bence.
  • Paylaş
Teşekkürler. Kayıt eklendiği gibi tetikleme yapmam mümkün değil sanırım?
  • Paylaş
3

Hakan Köse, Benim bildiğim kadarı ile Microsoft framework'leri veya geliştirici araçlarında (Windows Forms veya ASP.NET için söylüyorum) böyle bir yapı yok.. Bir süre önce ben de böyle bir yapıya ihtiyaç duymuştum ancak araştırdığımda bulmamıştım.

Aslında bu yapının adına; "Server Side Triggering" diyorlar ve bildiğim kadarı ile malesef .NET'te böyle bir destek yok şu an.

Hakan Köse, Bu arada, uygulamanız Windows Forms üzerinde çalışıyorsa ve haberleştiği veritabanı Local Network içinde ise performans kaygısı gütmenize (ekstrem durumlar hariç) pek gerek yok, Client Timer'ın intervalini biraz küçültüp sanki anında düşüyormuş izlenimi verebilirsiniz.

Eski Inploider, Kayıt eklendiğinde Sql'de trigger yazıp çalıştırabilirsin. "Sql Trigger" die ararsanız çok kaynak var. Veritabanında insert, update, delete triggerları oluşturuluyor. Bu triggerlar veri "kaydedildiği anda" sql server üzerinde çalışır. Bu trigger ile mail atabilirsiniz mesela.

Bence de Client uygulamadaki timer daha uygun bir çözüm. kayıt eklendiği anda anında uygulamana düşmesi için, web tarafında kayıt yapılırken, client uygulamanın kullandığı database'e aynı kaydı ekleyen bir web servis yazabilirsin. Ama bu web servis bağlantısından dolayı internet tarafındaki sistemini bir miktar yavaşlatabilir diye düşünüyorum. 
  • Paylaş