我想在web應用程序中定期在asp.net中運行調度過程。在asp.net的網絡應用程序中包含調度
簡單地說,我的數據庫表有日期&期限Hrs.I要發送根據該計算來自然後另一個表得到更新(插入的記錄1000)定期&也想運行郵件的過程中計算的預期日期時間對於相同的。
這是應該定期執行的預期預定過程。
我想在web應用程序中定期在asp.net中運行調度過程。在asp.net的網絡應用程序中包含調度
簡單地說,我的數據庫表有日期&期限Hrs.I要發送根據該計算來自然後另一個表得到更新(插入的記錄1000)定期&也想運行郵件的過程中計算的預期日期時間對於相同的。
這是應該定期執行的預期預定過程。
您可以使用窗口服務的研究背景和調度工作,請參閱以下鏈接:
看看這個老文章從Jeff Atwood: Easy Background Tasks in ASP.NET
基本上,他認爲,您使用緩存過期機制來安排定時任務。問題是:您的Web應用程序需要運行。如果網站根本沒有被調用呢?那麼,從IIS 7.5開始,您可以隨時保持您的網絡應用程序正常運行:auto starting web apps。傑夫在評論中表示,他的方法效果很好,直到他們超過了它。他的結論是,對於小型網站這是一個很好的方法。
@Michel Overeem:我想要這個建議,這是更高效和簡單的方法來做到這一點? – MayureshP
@MayP我增加了一些東西。如何對投票中的某些答案進行投票?如果沒有問題,那麼請擴展你的問題來解釋你正在尋找的更多東西。 –
@MayP所以現在你有幾個答案。如何對他們做出反應?提高投票或解釋你缺少的東西。似乎你不會在你的問題上付出很多努力。 –
Quartz.NET job scheduler library非常適合這種事情。
這裏就是我所做的:
public class Email {
private static System.Threading.Timer threadingTimer;
public static void StartTimer()
{
if (threadingTimer == null)
threadingTimer = new Timer(new TimerCallback(Callback), HttpContext.Current, 0, 20000);
}
private static void Callback(object sender)
{
if (/* Your condition to send emails */)
using (var context = new MyEntities())
{
var users = from user in context.Usere
select user;
foreach (var user in users)
{
// Send an email to user
}
}
}
}
而且你必須把它添加到的Application_Start:
void Application_Start(object sender, EventArgs e)
{
EMail.StartTimer();
}
確定。檢查另一個 – Saurabh