定时调度插件------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点需要统计前一天的考勤记录"."每个月 ...
随机推荐
- Python学习之实例1
一.求n个数字的平均值 n=3 #定义常量n=3 sum=0 #定义求和变量sum count=0 #定义变量count,记录输入数字的次数 print("请输入3个数字:") # ...
- gorm
特性 全功能 ORM 关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承) Create,Save,Update,Delete,Find 中钩子方 ...
- jmeter分布式压测对master、slave防火墙配置
首先要了解jmeter分布式压测的基础概念:master为统计结果的服务器,slave为各台压力机,如下图所示 一.结论 针对master 1.修改jmeter.properties的client.r ...
- 不借助idea开发工具构建一个Javaweb项目
不借助idea开发工具构建一个Javaweb项目 目录结构 webappsroot |----------WEB-INF |----------classes(存放字节码) |----------li ...
- 【Devexpress】Gridcontrol列标题换行
gridView1.OptionsView.AllowHtmlDrawHeaders = true; gridView1.ColumnPanelRowHeight = 35; GridColumn g ...
- 进军东南亚市场,腾讯云数据库 TDSQL 助力印尼 BNC 银行数字化转型
腾讯云数据库在助力金融核心系统分布式替换上,已经辐射到了东南亚市场. 东南亚最大的银行之一印尼BNC银行(Bank Neo Commerce)已正式完成新核心分布式迁移,使用腾讯云数据库TDSQL后, ...
- web项目的开发--第一天
如何分析需求.如何设计.编码实现.测试. 用ssm架构实现CRM项目代码编写. CRM项目: 关键是养成好的编程思想和编程习惯. 技术架构 视图层(view): 展示数据,跟用户交互. html,cs ...
- .NET周报【12月第1期 2022-12-08】
国内文章 CAP 7.0 版本发布通告 - 支持延迟消息,性能炸了? https://www.cnblogs.com/savorboard/p/cap-7-0.html) 今天,我们很高兴宣布 CAP ...
- python基础之hashilb模块、logging模块
hashlib加密模块 1.何为加密 将文明数据处理成密文数据 让人无法看懂 2.为什么要加密 保证数据的安全,防止密码泄露 3.如何判断数据是否加密 密文数据的表现形式一般都是一串没有规则的字符串( ...
- 【RocketMQ】主从模式下的消费进度管理
在[RocketMQ]消息的拉取一文中可知,消费者在启动的时候,会创建消息拉取API对象PullAPIWrapper,调用pullKernelImpl方法向Broker发送拉取消息的请求,那么在主从模 ...