.net core 任务调度Quartz

工具

在线Cron表达式生成器 (qqe2.com)

 

 官网

 Simple Triggers | Quartz.NET (quartz-scheduler.net)

nuget 

Quartz.AspNetCore

 

 1 using Quartz;
 2 using QuarzNet;
 3 
 4 var builder = WebApplication.CreateBuilder(args);
 5 
 6 // Add services to the container.
 7 
 8 builder.Services.AddControllers();
 9 // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
10 builder.Services.AddEndpointsApiExplorer();
11 builder.Services.AddSwaggerGen();
12 builder.Services.AddQuartz(q =>
13 {
14     //通过扩展方法注入管理作业
15     q.UseMicrosoftDependencyInjectionJobFactory();
16     var jobKey = new JobKey("jobkey");
17     q.AddJob<CostomJob>(p => p.WithIdentity(jobKey));
18     q.AddTrigger(opt =>
19     {
20         opt.ForJob(jobKey).WithIdentity(jobKey + "trigger")
21         .WithCronSchedule("0/5 * * * * ?");//每5秒执行一次
22     });
23 
24 });
25 builder.Services.AddQuartzServer(opt =>
26 {
27     opt.WaitForJobsToComplete = true;
28 });
29 var app = builder.Build();
30 
31 // Configure the HTTP request pipeline.
32 if (app.Environment.IsDevelopment())
33 {
34     app.UseSwagger();
35     app.UseSwaggerUI();
36 }
37 
38 app.UseHttpsRedirection();
39 
40 app.UseAuthorization();
41 
42 app.MapControllers();
43 
44 app.Run();

任务代码

 1 using Quartz;
 2 
 3 namespace QuarzNet
 4 {
 5     public class CostomJob : IJob
 6     {
 7         private readonly ILogger<CostomJob> _logger;
 8 
 9         public CostomJob(ILogger<CostomJob> logger)
10         {
11             this._logger = logger;
12         }
13 
14         public Task Execute(IJobExecutionContext context)
15         {
16             _logger.LogInformation("任务",DateTime.Now);
17             return Task.CompletedTask;
18         }
19     }
20 }

 

 

修改以下 每10秒执行一次

 

posted on 2023-05-24 13:30  是水饺不是水饺  阅读(136)  评论(0)    收藏  举报

导航