您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關在dotnet core如何實現類似crontab的定時任務,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
首先通過Nuget安裝
PM> Install-Package Light.Cron
配置StartUp
public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddCrontabJob(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseCrontabJob(); app.UseMvc(); } }
編寫crontab方法
[CrontabJob] public class CrontabObject { [CrontabSchedule("crontab1", "* * * * *")] public void DoSomeThing() { // Todo } }
即可完成每分鐘調用一次的定時任務
Light.Cron完全兼容Linux Crontab時間格式
* * * * *
分 時 日 月 周第1列表示分鐘0~59
第2列表示小時0~23
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~7(0和7表示星期天)
每天10點至16點
0 10-16 * * *每隔兩個小時
0 */2 * * *
并在此基礎上對一直一來對crontab使用的一些痛點進行了功能增強
跨時間段
當時間段格式出現結束時間小于開始時間, 則代表由開始時間到下一級時間的開始時間, 如
每月1號22點到2號4點之間的時間段
* 22-4 1 * *
每周一至周五晚上22點到次日4點之間的時間段, 里面包含周六的0點-4點, 不包含周一的0點-4點
* 22-4 * * 1-5
月末日期
日期格式中增加新增e標記作為月末最后一天, 并且可以通過e+數字代表最后一天再往前倒數天數, 如當月共31天, 則e=31, e1=30, e2=29, e3=28. 當月共30天, 則e=30, e1=29, e2=28, e3=27. 該語法同樣支持范圍
0 0 e3-e1 * *
時間范圍
Light.Cron可以通過新語法HH:mm-HH:mm將時分結合, 替換原有的時分設置, 如
每日9點30分至15點0分, 每隔一分鐘執行一次
09:30-15:00 * * *
每日21點30分至次日的5點30分, 每隔5分鐘執行一次
21:30-05:30/5 * * *
多組調度計劃
Light.Cron可以通過|符號支持多組調度計劃, 如
0點至11點, 每分鐘執行一次, 12點至23點, 每5分鐘執行一次
* 0-11 * * *|*/5 12-23 * * *
簡略寫法
如下一級及其以之后的時間范圍都是*, 可以簡略不寫, 如
* * * * * = * 30 9 * * * = 30 9 09:30-15:00 * * * = 09:30-15:00 0 0 1 * * = 0 0 1 0 0 1 2-5 * = 0 0 1 2-5
關于“在dotnet core如何實現類似crontab的定時任務”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。