Coravel定时任务的基本使用

本文实例环境及版本 .NetCore3.1

Coravel是一款框架轻,使用简单,支持秒级定时任务。

官网地址:https://docs.coravel.net/

一、基本使用

1、Nuget安装Coravel

2、在Startup->ConfigureServices中添加

 services.AddScheduler();

3、在Startup->Configure中添加

  var provider = app.ApplicationServices;
            provider.UseScheduler(scheduler =>
            {
                scheduler.Schedule(() => Console.WriteLine("Coravel执行了一次{0}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")))
                //工作日每隔10秒输出
                .EverySeconds(10);
                //只在工作日
                //.Weekday();
            });

执行结果如下:

 

二、自定义使用

1、新建StatisticTask类继承自IInvocable

 public class StatisticTask : IInvocable
    {
        /// <summary>
        /// 实现方法。编写的任务一定要在 Invoke中
        /// </summary>
        /// <returns></returns>
        public async Task Invoke()
        {
             Console.WriteLine("Invoke执行了一次{0}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
        }
    }

2、新建CoravelService类用户调用

 public static class CoravelService
    {
        /// <summary>
        /// 扩展方法,用于调用
        /// </summary>
        /// <param name="app"></param>
        public static void UseCoravelService(this IApplicationBuilder app)
        {
            var provider = app.ApplicationServices;
            provider.UseScheduler(scheduler =>
            {
                //自定义job实现类
                scheduler.Schedule<StatisticTask>()
                .EverySeconds(15);
            });
        }
    }

3、在Startup->ConfigureServices中添加

services.AddTransient<StatisticTask>();

4、在Startup->Configure中修改

 app.UseCoravelService();

执行结果如下:

 

EverySecond() 每秒运行一次任务
EveryFiveSeconds() 每五秒运行一次任务
EveryTenSeconds() 每十秒运行一次任务
EveryFifteenSeconds() 每十五秒运行一次任务
EveryThirtySeconds() 每三十秒运行一次任务
EverySeconds(3) 每 3 秒运行一次任务。
EveryMinute() 每分钟运行一次任务
EveryFiveMinutes() 每五分钟运行一次任务
EveryTenMinutes() 每十分钟运行一次任务
EveryFifteenMinutes() 每十五分钟运行一次任务
EveryThirtyMinutes() 每三十分钟运行一次任务
Hourly() 每小时运行一次任务
HourlyAt(12) 在每小时过去 12 分钟运行任务
Daily() 每天午夜运行一次任务
DailyAtHour(13) 每天下午 1 点 UTC 运行一次任务
DailyAt(13, 30) 每天下午 1:30 UTC 运行一次任务
Weekly() 每周运行一次任务
Cron("* * * * *") 使用 Cron 表达式运行任务

 

 

才疏学浅,相关文档等仅供自我总结,如有相关问题可留言交流谢谢。

 

posted @ 2022-09-08 18:14  独角马  阅读(479)  评论(0编辑  收藏  举报