有時候我們在專案中會需要新增一些定時器來定時執行某項操作,
一、採用 定時器 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的入...