Merhabalar, Üzerinde çalıştığım projede şöyle bir senaryo mevcut; Kullanıcı web sayfasından başlatma butonuna tıklayacak, tıkladığı anda arkaplanda bi kod çalışmaya başlayacak. bu kodda veritabanıyla beraber sürekli hesaplar yapıcak bir fonksiyon olucak, daha sonra ajax ile belirli aralıklarda istek gönderip bu fonksiyonun ürettiği sonuçlar ekranda gösterilecek. Bunun için web service mi yazmam gerikiyor? Arkaplanda timer benzeri bir yapı mevcut mudur?

soruldu: 11 Mar '13, 07:17

merakedenadam's gravatar image

merakedenadam
22191015
cevap kabul oranı: 20%

değiştirildi: 11 Mar '13, 08:19

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Doğrumu anladım bilmiyorum. Sizin anlattığınıza göre, istemci tarafından tetiklenen bir fonksiyon istiyorsunuz ki bunu javascript/jquery ile yapmak gerekir. Örneğin;

$("button").click(function refreshContext(){
    $.ajax({
        url:"domain/getResults",
        data: { someData : data },
        success:function(result){
            $("#text").val(result);
            setTimeout(refreshContext, 5000);
        }
    });
});

yukarıdaki kod ile butona tıklanınca js timer çalışır ve belirli aralıklarla, uygulamanız içerisindeki getResults fonksiyonunu belirli zaman aralıklarında çağırır ve dönen sonucu text adındaki elementin içerisinde yazar. Sizin söylediğinize göre ben bunu anlıyorum.

Ayrıca

web sayfasından başlatma butonuna tıklayacak, tıkladığı anda arkaplanda bi kod çalışmaya başlayacak

demişsiniz. Arka plandan kasıt C# tarafı sanırım. Burada çalışan timer ın istemci tarafına hic bir etkisi yoktur. Yani arkada ne kadar kod çalışırsa çalışsın istemciden istek olmazsa bu veriler sunucu tarafında kalır...

GÜNCELLEME

Web uygulaması üzerinde zamanlayıcı kullanmak sorunu çözmez. Çünkü uygulamının yaşam döngüsü içerisinde bu fonksiyonlar çalışır. Siz sürekli çalışmasını istiyorsanız, herhangibir sürekli çalışan uygulama yazabilirsiniz. (Windows servis, web servis, hatta console application bile olabilir. Önemli olan bu uygulamaların sürekli çalışıyor olması...)

Web uygulaması içerisindeki zamanlanmış görevlerin dezavantajları

Kendi yaptığımız bir çalışmada hava durumu bilgilerini günlük olarak çekip veritabanına yazıyoruz. Bunu windows servis ile zamanlayıcı kullanarak ve ya Mssql tarafında joblar içerisinde C# kodları yazıp belirli zaman aralıklarında bu kod satırlarınıda çağırabilirsiniz.

permanent link

cevaplandı: 11 Mar '13, 07:37

AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

AliRıza Adıyahşi ♦
7.9k146288
cevap kabul oranı: 44%

değiştirildi: 11 Mar '13, 08:26

Teşekkür ederim, Benim demek istediğim arkaplanda yani c# tarafında sürekli çalışacak bi fonksiyon veya class. bu class veya fonksiyonunn istemciyle bi bağlantısı olmayacak. Sadece veritabanındakii verileri sürekli işleyecek. İstemci tarafında sizin de yazdığınız gibi ajax vasıtasıyla bu fonksiyona veya classa istek gönderip o andaki ürettiği değerleri belirli aralıklarla alacağız. C# tarafında sürekli çalışacak bi fonksiyonu nasıl yazabilirim burada kafam karışıyor. Sayfa kapandığında veya başka bi kullanıcı sayfayı açtığında aynı veriyi görebilmesi gerekiyor. Bu yüzden istemciden bağımsız bir fonksiyonun sürekli çalışması gerekiyor. Umarım daha açık bir şekilde anlatabilmişimdir.

Timer örnek olsun diye yazdığım birşey, timer olmayabilir web service olabilir. Sadece hangi teknolojiyi kullanmam gerekiyo bunu anlayabilirsem gerisini tamamlayabilirim

(11 Mar '13, 08:01) merakedenadam merakedenadam's gravatar image

ajax bileşenini kullanabilirsin saniyede bir kontrol eder, diğer taraftan backgroundservice nesnesi yada en temelinde Thread nesnesi ile yapabilirsin. Eğer saniyelik güncellenen bir veri varsa Thread ve delegate fonksiyonları üzerinde araştırma yapınız.

(11 Mar '13, 08:06) Turgay Can Turgay%20Can's gravatar image
2

Web uygulaması üzerinde zamanlayıcı kullanmak sorunu çözmez. Çünkü uygulamının yaşam döngüsü içerisinde bu fonksiyonlar çalışır. Siz sürekli çalışmasını istiyorsanız, herhangibir sürekli çalışan uygulama yazabilirsiniz. (Windows servis, web servis, hatta console application bile olabilir. Önemli olan bu uygulamaların sürekli çalışıyor olması...)

(11 Mar '13, 08:15) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

Tercihen tabiki uygulamadan bağımsız çalışması avantajdır. Mimariden öte yazılacak yapı içerisindeki kullanılacak nesneler yönünde tavsiye bulundum.

(11 Mar '13, 08:35) Turgay Can Turgay%20Can's gravatar image

@J2EE , sizin yorumunuzu görmeden yorum yazıyordum. Size cevap olsun diye yazmadım. Yanlış anlaşılma olmasın sonra :)

(11 Mar '13, 08:53) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image
1

Yanlış anlaşılacak bir durum yok :) Birbirimize cevap vererek bilgi alışverişinde bulunuyoruz. Önyargı ile yaklaşmam asla.

(11 Mar '13, 08:56) Turgay Can Turgay%20Can's gravatar image

Bunlar uzerinde calisacagim. Zaman ayirdiginiz icin tesekkur ederim.

(11 Mar '13, 09:03) merakedenadam merakedenadam's gravatar image
7 yorumdan 5 tanesi gösteriliyor hepsini göster
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×158

Soruldu: 11 Mar '13, 07:17

Görüntüleme: 1,855 kez

Son güncelleme: 11 Mar '13, 09:11

powered by BitNami OSQA