1. startup类注入
services. AddSingleton < ISchedulerFactory , StdSchedulerFactory > ( ) ;
2. 新建Job类,需要执行什么
public class MyJob : IJob
{
private static int i { get ; set ; }
public Task Execute ( IJobExecutionContext context)
{
Console. WriteLine ( i) ;
i = i + 1 ;
return Task. CompletedTask;
}
}
3. 启动方式
using Microsoft. AspNetCore. Http;
using Microsoft. AspNetCore. Mvc;
using Quartz;
using System;
using System. Collections. Generic;
using System. Linq;
using System. Threading. Tasks;
using Test. Quraz;
namespace Test. Controllers
{
[ Route ( "api/[controller]/[action]" ) ]
[ ApiController ]
public class QuzuarController : ControllerBase
{
private readonly ISchedulerFactory _schedulerFactory;
private IScheduler _scheduler;
public QuzuarController ( ISchedulerFactory schedulerFactory)
{
this . _schedulerFactory = schedulerFactory;
}
[ HttpPost ]
public async Task< string > StartQuzer ( )
{
_scheduler = await _schedulerFactory. GetScheduler ( ) ;
await _scheduler. Start ( ) ;
var trigger = TriggerBuilder. Create ( )
. WithSimpleSchedule ( x = > x. WithIntervalInSeconds ( 2 ) . RepeatForever ( ) )
. Build ( ) ;
var jobDetail = JobBuilder. Create < MyJob > ( )
. WithIdentity ( "job" , "group" )
. Build ( ) ;
await _scheduler. ScheduleJob ( jobDetail, trigger) ;
return "启动成功" ;
}
}
}