基于Coravel的简单实现定时任务
作者:互联网
Coravel是什么?
Coravel 是一个接近零配置的 .NET Core 库,可以非常的快速简洁的实现任务调度、缓存、队列、邮件、事件广播等。
Coravel本质是通过注入Timer支持秒级的定时任务。
其官网地址https://docs.coravel.net/;
github地址:https://github.com/jamesmh/coravel
Coravel简单实现定时任务
一、引入Coravel程序集
install-package coravel
二、创建任务执行类,实现接口IInvocable
1 public class SyncProductJob : IInvocable 2 { 3 public Task Invoke() 4 { 5 Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")+"sync product"); 6 return Task.CompletedTask; 7 8 } 9 }
三、注入任务
1 //注入启用任务调度功能 2 builder.Services.AddScheduler(); 3 builder.Services.AddTransient<SyncProductJob>(); 4 var app = builder.Build(); 5 6 //配置任务 7 app.Services.UseScheduler(p => { 8 p.Schedule<SyncProductJob>().EverySeconds(25).Weekday(); 9 p.Schedule<SyncProductJob>().Cron("25 * * * * ?");//支持cron表达式 10 });
总结
Coravel是一个轻量级的程序集,可以快速方便的实现定时任务。尤其是针对简单EveryMinute,EverySecond等简单常用的定时任务配置。
对于简单的系统(不用比较复杂的定时设置)来说,还是比较值得推荐的。
但是对于大型而且复杂的定时任务需求,一般都是需要用到Cron来配置的,因为当需要修改定时任务频率时,只需修改配置重启程序即可,无需改动代码。像Hangfire还支持分布式的定时任务。所以此种情况下还是建议使用Hangfire或者是老牌的Quarter。
当然,Coravel还支持其他功能,例如缓存,队列等,有空可以尝试一下。(轻量级的,又夹杂着这么多功能,真的能应付得过来吗?表示怀疑...)
标签:基于,Coravel,builder,任务,Services,定时,coravel 来源: https://www.cnblogs.com/johnyong/p/16637835.html