在dotnet核心如何实现类似crontab的定时任务

  介绍

这篇文章将为大家详细讲解有关在dotnet核心如何实现类似crontab的定时任务,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

,,,首先通过Nuget安装

<代码> PM>安装包。Cron

配置启动

public  class 启动   {   public 才能启动(IConfiguration 配置)   {才能   ,,,Configuration =,配置;   ,,}   public 才能IConfiguration  Configuration {,得到;}   public 才能;void  ConfigureServices (IServiceCollection 服务)   {才能   ,,,services.AddMvc () .SetCompatibilityVersion (CompatibilityVersion.Version_2_2);   ,,,services.AddCrontabJob ();   ,,}   public 才能;void 配置(IApplicationBuilder 应用,IHostingEnvironment  env)   {才能   ,,,app.UseCrontabJob ();   ,,,app.UseMvc ();   ,,}   }

编写crontab方法

[CrontabJob]   public  class  CrontabObject   {   [CrontabSchedule才能(“crontab1",,, *, *, *, *, *,))   public 才能;void  DoSomeThing ()   {才能   ,,,//Todo   ,,}   }

即可完成每分钟调用一次的定时任务

光。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, e3 e2=28日=27。该语法同样支持范围
0 0 e3-e1 * *

<强>时间范围

光。Cron可以通过新语法HH: mm-HH: mm将时分结合,替换原有的时分设置,如

每日9点30分至15点0分,每隔一分钟执行一次

09:30-15:00 * * *

每日21点30分至次日的5点30分,每隔5分钟执行一次

21:30-05:30/5 * * *

<强>多组调度计划

光。Cron可以通过|符号支持多组调度计划,如

0点至11点,每分钟执行一次,12点至23点,每5分钟执行一次
*划分于* * * | */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核心如何实现类似crontab的定时任务”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。

在dotnet核心如何实现类似crontab的定时任务