基于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还支持其他功能,例如缓存,队列等,有空可以尝试一下。(轻量级的,又夹杂着这么多功能,真的能应付得过来吗?表示怀疑...)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了