定时调度插件------Quartz.NET(一)
官网地址 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);
定时调度插件------Quartz.NET(一)的更多相关文章
- 定时调度框架Quartz随笔
最近项目中的定时批处理用到了quartz定时任务,在此记录下quartz的配置吧,一个小demo仅供参考,也方便自己今后复习! 下面直接来步骤吧! 一.首先,要搭起能让quartz正常运行的环境,至少 ...
- 定时调度之Quartz
工作中我们经常碰到定时或者固定时间点去做一些事情,然后每天到时间点就会去做这样的事情,如果理解这样的场景,我们就要引入今天我们的主角Quartz,其实这个跟数据库的作业类似,但是不仅仅局限于数据库. ...
- 定时调度任务quartz
依赖 <!-- quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> < ...
- Spring中实现定时调度
1, 内容简介 所谓的定时调度,是指在无人值守的时候系统可以在某一时刻执行某些特定的功能采用的一种机制,对于传统的开发而言,定时调度的操作分为两种形式: 定时触发:到某一时间点上执行某些处理操作: ...
- Quartz定时调度框架
Quartz定时调度框架CronTrigger时间配置格式说明 CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年 ...
- Spring Quartz定时调度任务配置
applicationContext-quartz.xml定时调度任务启动代码: <?xml version="1.0" encoding="UTF-8" ...
- java 多线程——quartz 定时调度的例子
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
- springmvc+quartz简单实现定时调度
一.简介:Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十 ...
- Spring整合quartz框架实现任务定时调度
1. 首先需要引入需要的jar包,如上图所示. 2. 编写需要定时调度的测试类: package com.jp.task; import java.util.Date; public class T ...
- 定时调度系列之Quartz.Net详解
一. 背景 我们在日常开发中,可能你会遇到这样的需求:"每个月的3号给用户发信息,提醒用户XXX "."每天的0点需要统计前一天的考勤记录"."每个月 ...
随机推荐
- Mysql入门练习题
1.在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄 mysql> select name,age from students where age>25 and ge ...
- Python基础之面向对象:1、面向对象及编程思想
一.人狗大战 1.需求 用代码模拟人.狗打架的小游戏 人和狗种类不同,因此双方的属性各不相同 推导一: 人和狗各有不同属性 使用字典方式储存属性较为方便,并可储存多种属性 # 1.在字典内储存'人'属 ...
- Codeforces Round #781(C. Tree Infection)
Codeforces Round #781 C. Tree Infection time limit per test 1 second memory limit per test 256 megab ...
- springboot滚动分页展示列表(类似layui瀑布流效果)
背景: 公司项目要求获取用户关联的好友列表,要求分页查询,十条数据一页,滚动页面是点击加载更多,显示下一页列表. 示例图: 实现: 本项目采用的前端模板是freemaker,主要前端页面代码(没有 ...
- gin-k8s 运行的问题
1,k8s admin dashboard项目地址:https://github.com/kubernetes/dashboard项目使用的是golang 作为后端,然后使用angular 作为前段框 ...
- Go语言核心36讲23
我在上两篇文章中,详细地讲述了Go语言中的错误处理,并从两个视角为你总结了错误类型.错误值的处理技巧和设计方式. 在本篇,我要给你展示Go语言的另外一种错误处理方式.不过,严格来说,它处理的不是错误, ...
- 第2-3-7章 个人网盘服务接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss
目录 5.8 导入其他接口代码 5.8.1 接口导入-分页查询附件 5.8.2 接口导入-根据业务类型/业务id查询附件 5.9 导入网盘服务接口 5.9.1 导入FileController 5.9 ...
- 真正“搞”懂HTTP协议05之What's HTTP?
前面几篇文章,我从纵向的空间到横向的时间,再到一个具体的小栗子,可以说是全方位,无死角的覆盖了HTTP的大部分基本框架,但是我聊的都太宽泛了,很多内容都是一笔带过,再加上一句后面再说就草草结束了.并且 ...
- MyBatis详解(一)
MyBatis简单介绍 [1]MyBatis是一个持久层的ORM框架[Object Relational Mapping,对象关系映射],使用简单,学习成本较低.可以执行自己手写的SQL语句,比较灵活 ...
- Permanently added the RSA host key for IP address '192.30.253.113' to the list of known hosts.
$git push origin master 报错: Warning: Permanently added the RSA host key for IP address '192.30.253.1 ...