我有一個MVC 4應用程序,應做到以下幾點:
1-詢問用戶輸入他們的電子郵件地址(行動1 - >查看1 )
2-顯示接收請求的確認(操作2 - >查看2) - 用戶應該能夠關閉此處的網頁。
3-在服務器上啓動長時間進程(動作3),完成後通過電子郵件通知用戶。
我該如何做到這一點?我需要在Action 2上創建一個新線程,我是否正確?
謝謝!
我有一個MVC 4應用程序,應做到以下幾點:
1-詢問用戶輸入他們的電子郵件地址(行動1 - >查看1 )
2-顯示接收請求的確認(操作2 - >查看2) - 用戶應該能夠關閉此處的網頁。
3-在服務器上啓動長時間進程(動作3),完成後通過電子郵件通知用戶。
我該如何做到這一點?我需要在Action 2上創建一個新線程,我是否正確?
謝謝!
考慮使用任務並等待包含在.net 4.5中。顯示異步方法例如:
public async Task<List<Gizmo>> GetGizmosAsync()
{
var uri = Util.getServiceUri("Gizmos");
using (HttpClient httpClient = new HttpClient())
{
var response = await httpClient.GetAsync(uri);
return (await response.Content.ReadAsAsync<List<Gizmo>>());
}
}
完整的文章可以在這裏找到:http://www.asp.net/mvc/tutorials/mvc-4/using-asynchronous-methods-in-aspnet-mvc-4
我會把消息從行動2成某種形式的消息隊列。然後我會有一個後臺進程(最好在不同的服務器上)處理消息併發送郵件。這樣,您的Web服務器就可以專注於提供網頁和Web服務,而不需要爲長時間運行的任務提供服務。
非常好的一點!謝謝! – RonaDona
聽起來像CQRS風格系統的完美人選。 –
聲音正確。你試過了嗎? – bhamlin
asp.net中的每個請求都由一個單獨的線程處理。 –