結合Global和C#中的定時器實現自動Job(一)
一、建立一個cs檔案,定義Time 物件
public class WebTimer_AutoRepayment
{
static WebTimer_AutoRepayment()
{
_WebTimerTask = new WebTimer_AutoRepayment();
}
///
/// 例項化
///
///
public static WebTimer_AutoRepayment Instance()
{
return _WebTimerTask;
}
///
/// 實際執行的方法
///
private void ExecuteMain()
{
//定義你自己要執行的Job
ChinaPnrInterfaces.AutoSendRepaymentNotice();//定時傳送簡訊提醒的方法
}
#region Timer 計時器定義
///
/// 呼叫 callback 的時間間隔(以毫秒為單位)。指定 Timeout.Infinite 可以禁用定期終止。
///
private static int Period = 1 * 60 * 60 * 1000;
///
/// 呼叫 callback 之前延遲的時間量(以毫秒為單位)。指定 Timeout.Infinite 以防止計時器開始計時。指定零 (0) 以立即啟動計時器。
///
private static int dueTime = 3 * 1000;//三分鐘後啟動
///
///第幾次執行
///
private long Times = 0;
///
/// 例項化一個物件
///
private static readonly WebTimer_AutoRepayment _WebTimerTask = null;
private Timer WebTimerObj = null;
///
/// 是否正在執行中
///
private int _IsRunning;
///
/// 開始
///
public void Start()
{
if (WebTimerObj == null)
{
DateTime now = DateTime.Now;
int minutes = now.Minute;
if (minutes >= 55)
{
dueTime = 0;//立即啟動
}
else
{
dueTime = (55 - minutes) * 60 * 1000;//到某個時間點的55分鐘啟動
}
WebTimerObj = new Timer(new TimerCallback(WebTimer_Callback), null, dueTime, Period);
}
}
///
/// WebTimer的主函式
///
///
private void WebTimer_Callback(object sender)
{
try
{
if (Interlocked.Exchange(ref _IsRunning, 1) == 0)
{
ExecuteMain();
Times++;
Times = (Times % 100000);
}
}
catch
{
}
finally
{
Interlocked.Exchange(ref _IsRunning, 0);
}
}
///
/// 停止
///
public void Stop()
{
if (WebTimerObj != null)
{
WebTimerObj.Dispose();
WebTimerObj = null;
}
}
#endregion
}
二、在Global檔案中呼叫所定義的方法
void Application_Start(object sender, EventArgs e)
{
//在應用程式啟動時執行的程式碼
WebTimer_AutoRepayment.Instance().Start(); //
}
void Application_End(object sender, EventArgs e)
{
//在應用程式關閉時執行的程式碼
WebTimer_AutoRepayment.Instance().Stop();//
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28699126/viewspace-1070601/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Laravel 結合 Redis 實現 PHP 定時器LaravelRedisPHP定時器
- C#中的定時器(二)C#定時器
- dbms_job包的應用:在Oracle中實現定時操作(轉)Oracle
- pt-archiver結合crontab定時自動歸檔資料Hive
- oracle job使用方法--實現定時任務Oracle
- Oracle資料庫定時器JobOracle資料庫定時器
- 現實生活:定時器&孔子的一生定時器
- .NET中如何實現高精度定時器定時器
- Grails整合Quartz外掛實現定時任務(Job)AIquartz
- Java可自定義中斷定時器的實現Java定時器
- C#實現開發windows服務實現自動從FTP伺服器下載檔案(自行設定分/時執行)C#WindowsFTP伺服器
- Vue結合原生js實現自定義元件自動生成VueJS元件
- Airtest結合tidevice實現IOS自動化測試AIIDEdeviOS
- ScheduledThreadPoolExecutor實現定時器和延時載入功能thread定時器
- 訂單超時自動關閉的實現方案總結
- C#實現自動發郵件C#
- RHEL5.2中用ntp實現時間自動同步(和AS4不一樣)
- SpringBoot中併發定時任務的實現、動態定時任務的實現(看這一篇就夠了)Spring Boot
- 定時自動開啟和關閉Azure虛擬機器虛擬機
- 一個自動生成oracle job的指令碼Oracle指令碼
- Oracle中job無法自動執行Oracle
- C#多執行緒學習(五) 多執行緒的自動管理(定時器)C#執行緒定時器
- C# 多執行緒學習(5) :多執行緒的自動管理(定時器)C#執行緒定時器
- job的實現
- 【JavaScript定時器小案例】常見的幾種定時器實現的案例JavaScript定時器
- Android無障礙自動化結合opencv實現支付寶能量自動收集AndroidOpenCV
- 自定義定時器的一點總結定時器
- Android中實現短音訊和震動的一些總結Android音訊
- laravel cdn 結合七牛雲實現檔案自動同步功能Laravel
- 自動化測試工具分析和總結-實時更新
- Node.js結合RabbitMQ延遲佇列實現定時任務Node.jsMQ佇列
- Oracle 定時任務job實際應用Oracle
- Go定時器的三種實現方式Go定時器
- MyBatis自動設定建立時間和更新時間MyBatis
- [譯]python中的global和nonlocal的實踐Python
- Unity中的自動更新目錄結構設定Unity
- DBMS_JOB.SUBMIT 建立job定時排程MIT
- 在Oracle中實現定時操作Oracle