2010-09-03 10 views
9

Sağladığım .net kütüphanesini kullanarak asp.net mvc 2 uygulamasından e-posta gönderimini işlemek için postmarkapp.com adresine bakıyorum: postmark-dotnet libraryE-posta oluşturma ve gönderme için ASP.Net MVC arka plan konuları

documentation adresinde, e-postaların ekleri/ekleri göndermesinin biraz zaman alabileceğini ve bunun bir arka plan işinde daha iyi yapılabileceğini belirtiyorlar. Uygulamam için, bir gruptaki ekleri kullanıcılara 10 ile 500 arasında kişiselleştirilmiş e-postaya gönderiyorum.

  • ASP.Net MVC bu e-postaları gönderen yaratılması ve başlatılan yönetici kullanıcı olmayan bir engelleme şekilde bu arka plan işleme yapmanın en iyi yolu nedir?

  • 500 kullanıcı için "e-posta oluştur" u tıklayıp bu işlem tamamlanmadan önce tarayıcıyı kapatırlarsa ne olur? Herhangi bir yardım için

teşekkürler! Kullanıcı o tamamlayan veya AppDomain kapanana kadar bu iş parçacığı çalışmaya devam eder tarayıcıyı kapatır

[HttpPost] 
[Authorize(Roles = "Administrator")] 
public ActionResult SendMails() 
{ 
    new Thread(() => 
    { 
     // Send the emails here 
    }).Start(); 
    return View(); 
} 

:

cevap

17

Yeni parçacığı spawn ve bu iplik postalar gönderebilir ASP.Net MVC Yeni . Eylem hemen bir görünüm döndürecek ve engellenmeyecektir. Ayrıca, veritabanına bazı bayrakların e-posta gönderme işleminin çalıştığı iyi bir fikir olabilir. Böylece, yöneticinin iki kez tıklatması durumunda kullanıcılarınız çok sayıda postayla dövülmez.

Daha güçlü bir çözüm istiyorsanız, MSMQ'a bakabilirsiniz. Ve hızlıca başlamanız gereken here's a tutorial.

+0

Görev> Konu (.NET 4) – Necros

+2

denetleyici yönteminde e-posta (açık iş parçacığı) göndermek kötü bir uygulamadır. Statik bir sınıf olabilir! – vlukham

+0

neden kötü bir uygulama? –