SORU
11 ŞUBAT 2009, ÇARŞAMBA


IIS iş parçacığı üzerinde uzun süren işleri yürütmek için kullanabilir miyim?

ASP.NET bir uygulama, kullanıcı web sayfasında bir program ve bu olay sayesinde sunucuda bir nesne ve nesne üzerinde bir yöntem çağrıları başlatır işleyicisi. Bu yöntem harici bir sistem kapalı bir şeyler yapmak için gider ve bu biraz uzun sürebilir. Ne yapmak istiyorum bu yöntem ile kullanıcı denetimi iade edebilirim o yüzden başka bir iş parçacığı çağrı Çalıştır "isteğiniz gönderildi". Eğer kullanıcı yoklama durumu için nesneyi tutmak olsaydı daha güzel olurdu ama makul ateşle ve unut bunu yapmak için mutluyum.

Bilmiyorum ne eğer benim IIS iş parçacığı kullanıcı oturumu sona ererse bile çalıştıran tutmak için izin verir. Düşünün, kullanıcı olayı harekete ve biz sunucu nesnesi oluştur ve yeni bir iş parçacığı yöntemi yangın. Mutlu kullanıcı "isteğiniz gönderildi" mesajı kapatır ve onun tarayıcı. Sonuçta, bu kullanıcılar oturum IIS zaman alacak, ama konu hala iş yapmaya çalışıyor olabilir. IIS iş parçacığı çalışmasını sağlamak için izin verir veya kullanıcı oturumu sona erdiğinde onu öldürmek ve nesne imha olacak?

EDİT: cevaplar ve yorumlar, bunu yapmak için en iyi yolu IIS. en uzun süre çalışan işlem dışında hareket etmek olduğunu anladığım Herşey bir yana, bu uygulama etki alanı geri dönüşüm konusunu ele alacağız. Uygulamada, ihtiyacım olan sürüm 1 yerden sınırlı zaman ve çalışma içinde varolan çerçeve, çok istiyorum gelmesini engellemek için hizmet katmanı, dolayısıyla arzu sadece ateşten parçacığı içinde IIS. Uygulamada, "çalışan" burada sadece bir kaç dakika olacak ve web sitesinde eşzamanlılık sorun olmaz o kadar düşük olacaktır. uzun Ama bir sonraki sürümü kesinlikle ayrı bir hizmet katmanı ikiye ayırma ihtiyacı olacak.

CEVAP
11 ŞUBAT 2009, ÇARŞAMBA


İstediğinizi yapabilirsiniz, ama genellikle kötü bir fikirdir. Birkaç ASP.NET blog ve CMS motorları hosting sistemi yüklenebilir olması ve yüklü olması gereken bir windows hizmeti bir bağımlılık almak istiyoruz, çünkü bu yaklaşım. Genelde Küresel olarak uzun süren bir iş parçacığı tekmelerler.asax uygulaması başladığında, ve bu iş parçacığı işlem görevleri kuyruğa sahip.

Kaynaklar/ASP IIS için kullanılabilir azaltmanın yanı sıra.NET istekleri de var sorunları ile iplik olmak öldürdüğünde Uygulama. geri dönüşümlü, ve sonra uğraşmak zorundasın, kalıcılık görev esnasında uçuş olarak başlayan bu iş geri geldiğinde Uygulama geri geliyor.

Birçok durumda Uygulama otomatik olarak varsayılan aralıklarla geri dönüşüm yanı sıra, web güncelleme unutmayın.yapılandırma, vb.

Eğer baş edebilecek süreklilik ve işlem yönleri iplik öldüğünde, herhangi bir anda, o halde senin etrafında Uygulama geri dönüşümü olan bazı dış işlem yapan bir istekte sitenizde bazı Aralık - böylece, eğer bu site geri dönüştürülmüş size garanti için Başlat tekrar otomatik olarak içinde X dakika.

Yine, bu genellikle kötü bir fikir.

EDİT: Burada eylem: bu teknik bazı örnekler

Community Server: Using Windows Services vs. Background Thread to Run Code at Scheduled Intervals Creating a Background Thread When Website First Starts

DÜZENLE (uzak gelecekte) - Bu gün Hangfire kullanmak istiyorsunuz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dave Wallace

    Dave Wallace

    27 Kasım 2007
  • discokatze

    discokatze

    23 EYLÜL 2009
  • H3Ctic (old channel)

    H3Ctic (old

    23 Mart 2011