当前位置:   article > 正文

C#---使用Coravel实现定时任务

C#---使用Coravel实现定时任务

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

1.添加NuGet引用

2.定义自己的工作任务

  1. using Coravel.Invocable;
  2. using Microsoft.Extensions.Logging;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. namespace CoravelDemo
  8. {
  9. public class MyCoravelJob1 : IInvocable
  10. {
  11. private readonly ILogger _logger;
  12. public MyCoravelJob1(ILogger<MyCoravelJob1> logger)
  13. {
  14. _logger = logger;
  15. }
  16. public async Task Invoke()
  17. {
  18. _logger.LogInformation($"Coravel执行了一次{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
  19. }
  20. }
  21. }

3.在Startup.cs中注册与配置自己的工作任务

  1. using Coravel;
  2. using Microsoft.AspNetCore.Builder;
  3. using Microsoft.AspNetCore.Hosting;
  4. using Microsoft.AspNetCore.Http;
  5. using Microsoft.Extensions.DependencyInjection;
  6. using Microsoft.Extensions.Hosting;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Threading.Tasks;
  11. namespace CoravelDemo
  12. {
  13. public class Startup
  14. {
  15. // This method gets called by the runtime. Use this method to add services to the container.
  16. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
  17. public void ConfigureServices(IServiceCollection services)
  18. {
  19. //只使用Coravel的任务调度功能
  20. services.AddScheduler();
  21. //注册自己的调度任务
  22. services.AddTransient<MyCoravelJob1>();
  23. }
  24. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  25. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  26. {
  27. if (env.IsDevelopment())
  28. {
  29. app.UseDeveloperExceptionPage();
  30. }
  31. //配置任务
  32. var provider = app.ApplicationServices;
  33. provider.UseScheduler(scheduler =>
  34. {
  35. scheduler.Schedule<MyCoravelJob1>()
  36. //工作日每隔10秒输出
  37. .EverySeconds(10);
  38. //只在工作日
  39. //.Weekday();
  40. });
  41. app.UseRouting();
  42. app.UseEndpoints(endpoints =>
  43. {
  44. endpoints.MapGet("/", async context =>
  45. {
  46. await context.Response.WriteAsync("Hello World!");
  47. });
  48. });
  49. }
  50. }
  51. }

执行结果:

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 表达式运行任务

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/518870
推荐阅读
相关标签
  

闽ICP备14008679号