E.g.我們這段代碼在asp.net窗體codebihind:asp.net進程中的長時間運行的代碼
private void btnSendEmails_OnClick()
{
Send100000EmailsAndWaitForReplies();
}
此代碼執行將被超時原因殺死。 爲了解決這個問題,我想看到這樣的事情:
private void btnSendEmails_OnClick()
{
var taskId = AsyncTask.Run(() => Send100000EmailsAndWaitForReplies());
// Store taskId for future task execution status checking.
}
這種方法將一些方法W3wp.exe進程之外的特殊enveronment內執行。
有沒有人知道解決這類問題的框架/工具集?
更新:電子郵件發送方法只是我的意思的一個例子。事實上,我可能需要在asp.net工作流程之外執行很多功能。
例如這一點對於聚合來自幾個第三方服務的數據的應用程序非常重要,對它做些什麼並將其發送回另一個服務。
如果你能在90秒的時間限制內生活,你可以使用QueueBackgroundWorkItem。其他選項包括HangFire,Web Jobs和Azure雲服務。有關更多詳情,請參閱下面的答案。 – RickAndMSFT 2014-06-10 18:59:13