官网地址 https://www.quartz-scheduler.net/

使用说明

dll引用

  • 使用NuGet 搜索Quartz,作者为Marko Lahma, Quartz.NET为该插件

    目前最新的为3.5.0版本,.NET Core/netstandard 2.0 and .NET Framework 4.6.2以上

    2.6.2版本及以下无要求,3.0.0版本开始有最低版本

  • 直接下载源码编译即可

    当前使用版本为最新的3.5.0。

最小使用说明

共用类

//创建一个IJob的实现类
public class MyJob : IJob
{
private readonly ILogger<MyJob> logger;
public MyJob(ILogger<MyJob> logger)
{
this.logger = logger;
}
public async Task Execute(IJobExecutionContext context)
{
await Task.Delay(1000, context.CancellationToken);
logger.LogInformation("等待1秒");
}
}

.netcore容器注入

/*
如果需要提前注入的类可使用以下方法
方法名 生命周期 说明
AddSingleton 项目启动-项目关闭 相当于静态类 有且只有一个
AddTransient 请求开始-请求结束 对象都是同一个
AddScoped 请求获取-主动释放 每次获取的都不同
*/
//Quartz调度中心
services.AddQuartz(q =>
{
//使用默认的配置文件
q.UseMicrosoftDependencyInjectionJobFactory();
// 基本Quartz调度器、作业和触发器配置
q.ScheduleJob<MyJob>(
// 触发器的配置设定
triggerConfigurator => triggerConfigurator
// 唯一表示
.WithIdentity("myJobTrigger")
// 马上执行一次
.StartNow()
// 间隔5s执行一次
.WithSimpleSchedule(x => x.WithIntervalInSeconds(5).RepeatForever()),
// 任务的配置设定
jobConfigurator => jobConfigurator
// 唯一标识
.WithIdentity("myJob"));
});
// ASP.NET核心托管-添加Quartz服务
services.AddQuartzServer(options =>
{
// 当程序关闭时,我们希望任务也随之关闭
options.WaitForJobsToComplete = true;
});

.net framework4.6.2

// 创建调度工厂
ISchedulerFactory sf = new StdSchedulerFactory();
// 获得调度实例
IScheduler sched = await sf.GetScheduler();
// 获得当前时间的下一分钟
DateTimeOffset runTime = DateBuilder.EvenMinuteDate(DateTimeOffset.UtcNow);
// 创建任务
IJobDetail job = JobBuilder.Create<MyJob>()
// 唯一标识
.WithIdentity("my job", "my group")
.Build();
// 定义触发器
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("my trigger", "my group")
// 触发时间
.StartAt(runTime)
.Build();
// 绑定任务和触发器
await sched.ScheduleJob(job, trigger);
// 开始调度
await sched.Start();
// 结束
await sched.Shutdown(true);

最新文章

  1. Guidance of Set up FTP Server
  2. iOS 分析一个支持GIF的UIImage扩展:SwiftGIF
  3. iredmail安装脚本分析(三)---conf/global DISTRO值的来源及操作系统的判断
  4. 循序渐进Python3(十一) --5-- 同源策略
  5. C#--常量
  6. JSP中setattribute与setParameter的区别
  7. cxGrid使用汇总1
  8. Apache+Tomcat +mod_proxy集群负载均衡及session
  9. linux下 oracle常用命令
  10. VC青睐服装订制网站 市场规模超3000亿美元 - 找VC - 创业邦
  11. iOS_动态插入或删除行
  12. WPF 完美截图 &lt;一&gt;
  13. 如何修改nexus的端口号
  14. 传输控制协议(TCP) -- 连接建立及终止过程
  15. 从壹开始微服务 [ DDD ] 之四 ║让你明白DDD的小故事 &amp; EFCore初探
  16. python字符串 列表 元组 字典相关操作函数总结
  17. vue的表单输入绑定
  18. 深入理解 JavaScript 异步系列(1)——基础
  19. spark图解
  20. elasticsearch插件的开发--计算特征向量的相似度

热门文章

  1. SIP会话发起协议 - 先知道是什么(一)
  2. 河北首家城商行传统核心业务国产化,TDSQL突破三“最”为秦皇岛银行保驾护航
  3. CentOS 8 离线安装 podman 解决方法
  4. 嵌入式-C语言基础:指针
  5. windows每日定时计划任务
  6. 【Java并发004】原理层面:synchronized关键字全解析
  7. i春秋时间
  8. SpringBoot2.5.1+Mybatis-Plus3.4.3:(Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required)
  9. JavaScript中的Error错误对象与自定义错误类型
  10. 【Shell案例】【wc、awk、cat、管道】1、统计文件的行数