asp.net 定時間點執(zhí)行任務(wù)的簡易解決辦法
更新時間:2009年12月06日 22:35:29 作者:
這里的定時間點執(zhí)行任務(wù),指的是每天的某個時間執(zhí)行一項任務(wù)。
比如每天凌晨七點的時候email發(fā)送一次報表。
這里首先想到的就是利用 Global.asax 文件來實現(xiàn), 以下Global文件的內(nèi)容。
<%@ Application Language="C#" %>
<%@ Import Namespace="System.Threading" %>
<script runat="server">
//這里使用靜態(tài)保持對這處Timer實例的引用,以免GC
private static System.Threading.Timer timer = null;
protected void Application_Start(object sender, EventArgs e) {
//計算現(xiàn)在到目標時間要過的時間段。
DateTime LuckTime = DateTime.Now.Date.Add(new TimeSpan(7, 0, 0));
TimeSpan span = LuckTime - DateTime.Now;
if (span < TimeSpan.Zero) {
span = LuckTime.AddDays(1d) - DateTime.Now;
}
//按需傳遞的狀態(tài)或者對象。
object state = new object();
//定義計時器
timer = new System.Threading.Timer(
new TimerCallback(CertainTask), state,
span, TimeSpan.FromTicks(TimeSpan.TicksPerDay));
}
protected void Application_End(object sender, EventArgs e) {
//結(jié)束時記得釋放
if (timer != null) { timer.Dispose(); }
}
//這里是指定時間執(zhí)行的代碼,必須是靜態(tài)的。
private static void CertainTask(object state) {
//這里寫你的任務(wù)邏輯
}
</script>
這里首先想到的就是利用 Global.asax 文件來實現(xiàn), 以下Global文件的內(nèi)容。
復(fù)制代碼 代碼如下:
<%@ Application Language="C#" %>
<%@ Import Namespace="System.Threading" %>
<script runat="server">
//這里使用靜態(tài)保持對這處Timer實例的引用,以免GC
private static System.Threading.Timer timer = null;
protected void Application_Start(object sender, EventArgs e) {
//計算現(xiàn)在到目標時間要過的時間段。
DateTime LuckTime = DateTime.Now.Date.Add(new TimeSpan(7, 0, 0));
TimeSpan span = LuckTime - DateTime.Now;
if (span < TimeSpan.Zero) {
span = LuckTime.AddDays(1d) - DateTime.Now;
}
//按需傳遞的狀態(tài)或者對象。
object state = new object();
//定義計時器
timer = new System.Threading.Timer(
new TimerCallback(CertainTask), state,
span, TimeSpan.FromTicks(TimeSpan.TicksPerDay));
}
protected void Application_End(object sender, EventArgs e) {
//結(jié)束時記得釋放
if (timer != null) { timer.Dispose(); }
}
//這里是指定時間執(zhí)行的代碼,必須是靜態(tài)的。
private static void CertainTask(object state) {
//這里寫你的任務(wù)邏輯
}
</script>
您可能感興趣的文章:
- 利用Timer在ASP.NET中實現(xiàn)計劃任務(wù)的方法
- Asp.Net(C#)自動執(zhí)行計劃任務(wù)的程序?qū)嵗治龇窒?/a>
- asp.net 在客戶端顯示服務(wù)器端任務(wù)處理進度條的探討
- asp.net 每天定點執(zhí)行任務(wù)
- asp.net 計劃任務(wù)管理程序?qū)崿F(xiàn),多線程任務(wù)加載
- C#(asp.net)多線程用法示例(可用于同時處理多個任務(wù))
- ASP.NET 計劃任務(wù)實現(xiàn)方法(不使用外接程序,.net內(nèi)部機制實現(xiàn))
- 詳解免費開源的DotNet任務(wù)調(diào)度組件Quartz.NET(.NET組件介紹之五)
- Asp.net ajax實現(xiàn)任務(wù)提示頁面的簡單代碼
- .NET Core基于Generic Host實現(xiàn)后臺任務(wù)方法教程
相關(guān)文章
.net數(shù)據(jù)庫操作框架SqlSugar的簡單入門
這篇文章主要介紹了.net數(shù)據(jù)庫操作框架SqlSugar的簡單入門,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下2021-04-04在asp.net下實現(xiàn)Option條目中填充前導(dǎo)空格的方法
在asp.net下實現(xiàn)Option條目中填充前導(dǎo)空格的方法...2007-03-03ASP.net中實現(xiàn)基于UrlRewrite的防盜鏈功能
這篇文章主要介紹了ASP.net中如何實現(xiàn)基于UrlRewrite的防盜鏈,需要的朋友可以參考下2014-03-03Asp.Net使用服務(wù)器控件Image/ImageButton顯示本地圖片的方法
Image/ImageButton服務(wù)器控件顯示本地的圖片,實現(xiàn)思路是數(shù)據(jù)庫中存放了圖片的相對地址,讀取數(shù)據(jù)庫中的地址,用控件加載顯示圖片。具體實現(xiàn)步驟大家參考下本文2017-08-08詳解ASP.Net Core 中如何借助CSRedis實現(xiàn)一個安全高效的分布式鎖
這篇文章主要介紹了ASP.Net Core 中如何借助CSRedis實現(xiàn)一個安全高效的分布式鎖,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Asp.net?core?使用SignalR推送消息過程詳解
ASP.NET?Core?SignalR?是一個開放源代碼庫,可用于簡化向應(yīng)用添加實時?Web?功能。?實時?Web?功能使服務(wù)器端代碼能夠?qū)?nèi)容推送到客戶端,本文重點給大家介紹Asp.net?core?使用SignalR推送消息,感興趣的朋友一起看看吧2022-03-03