C MVC專案中新增定時器

2021-09-29 13:01:20 字數 2761 閱讀 2600

有時候我們在專案中會需要新增一些定時器來定時執行某項操作,

一、採用 定時器 timer。這種方法適合迴圈執行的方法,每隔一段時間執行一次

system.timers.timer timer = new system.timers.timer(1200000);//執行時間間隔(毫秒)

timer.autoreset = true;(是否重複執行 elapsed 事件)

timer.enabled = true;(是否引發 elapsed 事件 )

timer.elapsed += new system.timers.elapsedeventhandler(刪除預約中資訊);要執行的方法

二、在程式裡面新開乙個job,這種方法適合定點執行,在config檔案設定好執行的時間

想要採用這種方法 先要在nuget管理器安裝乙個 quartz 的 dll

建立乙個 jobserver的類,建立乙個作業

public class jobserverwhere t : ijob

public string jobgroup

public ijobdetail cratejob()

}

然後新增乙個 jobbase 的類,做一些關於這個作業的配置

public class jobbase

}public static void addschedule(jobserverjobserver, itrigger trigger, string jobname, string jobgroup) where t : ijob

}

新增乙個 jobmanager 類,來開啟排程

public static void state()

//其中 automaticrenewaljob是實際執行的一些方法,automaticrenewaltriggerserver是作業觸發的一些配置

新增實際執行的方法和作業觸發的一些配置

//作業實際執行的方法集

public class automaticrenewaljob : ijob

/", datetime.now.tostring("yyyy-mm-dd"));

if (!directory.exists(reportdirectory))

var dailyreportfullpath = string.format("text_.log", reportdirectory, datetime.now.day);

#endregion

#region 任務排程加入日誌

var logcontent = string.format("-", datetime.now.tostring("yyyy/mm/dd hh:mm:ss"), "自動解鎖與續期任務已執行", environment.newline);

#endregion

}//作業啟動的一些配置

public class automaticrenewaltriggerserver

}//0 0 12 * * ? 每天12點觸發

//0 15 10 ? **每天10點15分觸發

//0 15 10 * * ? 每天10點15分觸發

//0 15 10 * * ? *每天10點15分觸發

//0 15 10 * * ? 2005 2023年每天10點15分觸發

//0 * 14 * * ? 每天下午的 2點到2點59分每分觸發

//0 0 / 5 14 * * ? 每天下午的 2點到2點59分(整點開始,每隔5分觸發)

//0 0 / 5 14,18 * * ? 每天下午的 2點到2點59分(整點開始,每隔5分觸發)

//每天下午的 18點到18點59分(整點開始,每隔5分觸發)

//0 0 - 5 14 * * ? 每天下午的 2點到2點05分每分觸發

//0 10,44 14 ? 3 wed 3月分每週三下午的 2點10分和2點44分觸發 (特殊情況,在乙個時間設定裡,執行兩次或 兩次以上的情況)

//0 59 2 ? *fri 每週5凌晨2點59分觸發;

//0 15 10 ? *mon - fri 從周一到周五每天上午的10點15分觸發

//0 15 10 15 * ? 每月15號上午10點15分觸發

//0 15 10 l * ? 每月最後一天的10點15分觸發

//0 15 10 ? *6l 每月最後一周的星期五的10點15分觸發

//0 15 10 ? *6l 2002 - 2005 從2023年到2023年每月最後一周的星期五的10點15分觸發

//0 15 10 ? *6#3 每月的第三週的星期五開始觸發

//0 0 12 1 / 5 * ? 每月的第乙個中午開始每隔5天觸發一次

//0 11 11 11 11 ? 每年的11月11號 11點11分觸發(光棍節)

另外需要在config做一些配置工作

// configsections裡面

////runtime 裡面

//configuration 裡面

這樣設定的是每天17點47分執行

新增定時器

string table中新增字串資源ids timer,時鐘 indicators中新增ids timer settimer 1,1000,null 新增訊息響應函式ontimer static uint indicators 新增或減少像乙個的字串資源id,即新增或減少乙個狀態列上的窗格 int...

mysql新增定時器

今天做專案的時候做乙個簽到,設了乙個鍵判斷是否簽到。然後想到用mysql的定時器進行0點清零。需要mysql5.1支援 select version 然後開始新增儲存過程。delimiter drop procedure if exists qiandaomode create procedure ...

SpringBoot新增定時器

方法一 通過springboot自帶入口來開啟定時器。首先定時器需要有乙個總開關,因為可能要定時很多函式,如果我想全都暫時關上總不能乙個乙個把註解給刪掉吧。所以我們需要先把總開關開啟,也就是在springboot的入口處新增 enablescheduling這個註解。上 此為springboot的入...