定時間點執行任務的asp.net簡易解決辦法
這裡的定時間點執行任務,指的是每天的某個時間執行一項任務。
比如每天凌晨七點的時候email傳送一次報表。
這裡首先想到的就是利用 Global.asax 檔案來實現, 以下Global檔案的內容。
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->@ Application Language="C#" %>
@ Import Namespace="System.Threading" %>
<script runat="server">
//這裡使用靜態保持對這處Timer例項的引用,以免GC
private static System.Threading.Timer timer = null;
protected void Application_Start(object sender, EventArgs e) {
//計算現在到目標時間要過的時間段。
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;
}
//按需傳遞的狀態或者物件。
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) {
//結束時記得釋放
if (timer != null) { timer.Dispose(); }
}
//這裡是指定時間執行的程式碼,必須是靜態的。
private static void CertainTask(object state) {
//這裡寫你的任務邏輯
}
script>
@ Import Namespace="System.Threading" %>
<script runat="server">
//這裡使用靜態保持對這處Timer例項的引用,以免GC
private static System.Threading.Timer timer = null;
protected void Application_Start(object sender, EventArgs e) {
//計算現在到目標時間要過的時間段。
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;
}
//按需傳遞的狀態或者物件。
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) {
//結束時記得釋放
if (timer != null) { timer.Dispose(); }
}
//這裡是指定時間執行的程式碼,必須是靜態的。
private static void CertainTask(object state) {
//這裡寫你的任務邏輯
}
script>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-621844/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASP.NET 中的定時執行任務ASP.NET
- centOS crontab定時任務不執行的解決CentOS
- Laravel 定時任務突然無法執行Laravel
- PHP定時執行任務PHP
- azkaban執行任務長時間無法結束
- spring執行定時任務Spring
- laravel框架任務排程(定時執行任務)Laravel框架
- PHP定時執行任務的實現PHP
- UICollectionView設定行間距失效,解決辦法UIView
- 使用spring @Scheduled註解執行定時任務、Spring
- 解決PythonWin執行時崩潰的辦法Python
- Java定時任務解決方案Java
- php後臺定時執行任務PHP
- java web每天定時執行任務JavaWeb
- Linux下的crontab定時執行任務命令詳解Linux
- Centos 7下利用crontab定時執行任務詳解CentOS
- CentOS Linux使用crontab執行定時任務詳解CentOSLinux
- quartz定時任務時間設定quartz
- Django配置celery執行非同步任務和定時任務Django非同步
- 基於Mongodb分散式鎖簡單實現,解決定時任務併發執行問題MongoDB分散式
- SpringBoot執行定時任務@ScheduledSpring Boot
- kettle執行定時任務,kitchen.batBAT
- Android利用AlarmManager執行定時任務Android
- Ext.util.TaskRunner定時執行任務
- Springboot-之定時任務,啟動執行任務Spring Boot
- 怎樣監控執行時間來決定當前操作任務是否因超時停止呀?
- 如何使用cron任務每隔2天在固定時間執行任務
- 『學了就忘』Linux系統定時任務 — 88、迴圈執行定時任務Linux
- linux設定crontab定時執行任務計劃Linux
- Windows7音訊服務未執行的解決辦法Windows音訊
- 用CMD執行時Java,出現亂碼的解決辦法Java
- Spring Boot中得定時任務執行一段時間後突然停了Spring Boot
- 定時任務報警通知解決方案詳解
- 『學了就忘』Linux系統定時任務 — 87、只執行一次的定時任務Linux
- Java多執行緒——獲取多個執行緒任務執行完的時間Java執行緒
- 【Awen】asp.net定時任務實現ASP.NET
- ubuntu上使用cron執行定時任務計劃Ubuntu
- Spring Task 定時任務 - 多執行緒配置Spring執行緒