2
我正在做一個在Windows Azure中運行/部署的Web應用程序(ASP.NET MVC)。從ASP.NET MVC應用程序執行WebRequests是不是一個不好的做法?
它是一個不好的做法,如果我從這個應用程序?這是做了很多WebRequests的:
ActionResult SomeAction()
{
WebRequest.Create(some url);
....
}
SomeAction叫了很多次。另外SomeAction可能會創建多達100個WebRequests,甚至更多。
這是不好的做法?
我應該使用Windows服務嗎?即:
ActionResult SomeAction()
{
//Save the request in a db and let a Windows Service to poll this db
//and do the WebRequests from outside the MVC application
}
您是什麼意思「很多次」? SomeAction可以有多少個併發?他們是什麼類型的電話? – Madthew 2013-05-08 15:35:05
你在做什麼並沒有什麼天生的錯誤。但是,使用處理請求的Windows服務的隊列肯定會讓您更好地管理吞吐量。例如,如果SomeAction被調用的次數多於網站能夠處理的次數,會發生什麼?一些要求「丟失」的請求你可以嗎?這個決定取決於實際的預期負載以及是否可以擴展來處理它。 – mellamokb 2013-05-08 15:35:17
我同意其他人。如果這是一個面向用戶的應用程序,這將是一個不愉快的頁面。如果這是臨時使用的內部事物,這樣的事情可能會很好。最終,如果你想擴大規模,那麼你應該遵循@ mellamokb的建議,排隊你的100個工作,並返回給用戶,並有一些過程來監控100個工作的狀態。 – Jaxidian 2013-05-08 16:00:53