首页 > 其他分享 >基于Coravel的简单实现定时任务

基于Coravel的简单实现定时任务

时间:2022-08-29 23:56:18浏览次数:85  
标签:基于 Coravel builder 任务 Services 定时 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
From: https://www.cnblogs.com/johnyong/p/16637835.html

相关文章