Coravel是一款框架轻,使用简单,支持秒级定时任务。
官网地址:https://docs.coravel.net/
.NetCore3.1使用步骤
1.添加NuGet引用
2.定义自己的工作任务
using Coravel.Invocable; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace CoravelDemo { public class MyCoravelJob1 : IInvocable { private readonly ILogger _logger; public MyCoravelJob1(ILogger<MyCoravelJob1> logger) { _logger = logger; } public async Task Invoke() { _logger.LogInformation($"Coravel执行了一次{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"); } } }
3.在Startup.cs中注册与配置自己的工作任务
using Coravel; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace CoravelDemo { public class Startup { // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { //只使用Coravel的任务调度功能 services.AddScheduler(); //注册自己的调度任务 services.AddTransient<MyCoravelJob1>(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } //配置任务 var provider = app.ApplicationServices; provider.UseScheduler(scheduler => { scheduler.Schedule<MyCoravelJob1>() //工作日每隔10秒输出 .EverySeconds(10); //只在工作日 //.Weekday(); }); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGet("/", async context => { await context.Response.WriteAsync("Hello World!"); }); }); } } }
执行结果:
Coravel的主要方法:
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 表达式运行任务 |
标签:
C#小技巧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义