Quraz.NET任务调度

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;
        }
        /// <summary>
        /// 启动定时器
        /// </summary>
        /// <returns></returns>
        [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 "启动成功";
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值