Quartz基础使用
Quartz基本组成部分:
- 调度器:Scheduler
- 任务:JobDetail
- 触发器:Trigger,包括SimpleTrigger和CronTrigger
.
using Quartz;
using Quartz.Impl;
using System;
using System.Threading.Tasks; namespace QuartzDemo1
{
/// <summary>
/// 我的任务
/// </summary>
class MyJob : IJob
{
public Task Execute(IJobExecutionContext context)
{
JobDataMap jobdata = context.JobDetail.JobDataMap;
JobDataMap triggerdata= context.Trigger.JobDataMap;
Console.WriteLine($"JobKey:{jobdata["JobKey"]},TriggerKey:{triggerdata["TriggerKey"]},{DateTime.Now.ToString()}");
return Task.CompletedTask;
}
}
class Program
{
static async Task Main(string[] args)
{
IScheduler scheduler;/*****************this's Scheduler********************/
{
//调度器工厂
StdSchedulerFactory factory = new StdSchedulerFactory();
scheduler = await factory.GetScheduler(); //调度器
}
IJobDetail job; /*****************this's Ijob********************/
{
//创建一个工作任务 ,myjob1是名称,mygroup1是组名。
job = JobBuilder.Create<MyJob>().WithIdentity("myjob1", "mygroup1")
.UsingJobData("JobKey", "JobValue") //传数据
.Build();
//..... 可以创建多个Job然后通过 group进行分组
//例如: 有7个接口 A/B/C/O/X/Y/Z
//ABC分别接收ABC类型订单(已确定执行时间一致) 每天06:00执行
//XYZ分别发送XYZ订单(已确定执行时间一致) 每天12:00/22:00点
//O接口定时清理数据 每天23:00执行
//则可以把 ABC分为 ABCGroup XYZ分为XYZGroup O单独分为Ogroup;
}
ITrigger trigger; /*****************this's Itrigger********************/
{
//触发器
trigger = TriggerBuilder.Create()
.WithIdentity("mytrigger1", "mygroup1") //定时器与JobGroup对应
//.WithCronSchedule("0/5 * * * * ?") //5秒执行一次 //同下 (定时)
.WithSimpleSchedule(x => x.WithIntervalInSeconds(5).RepeatForever()) //同上(定时)
.UsingJobData("TriggerKey", "TriggerValue") //传数据
.Build();
}
//将任务与触发器添加到调度器中
_ = scheduler.ScheduleJob(job, trigger);
_ = scheduler.Start();
Console.Read();
}
}
}
Quartz基础使用的更多相关文章
- Quartz基础调度框架-第二篇服务
很多应用场景Quartz运行于Windows服务 Conf 在这个基本结构里 是用来存放配置 和上一篇 控制台运行的一样的结构 jobs.xml 的配置清单 <!-- 任务配置--> & ...
- Quartz基础调度框架-第一篇控制台
Quartz基础调度框架 Quartz核心的概念:scheduler任务调度.Job任务.Trigger触发器.JobDetail任务细节 结构 Conf 在这个基本结构里 是用来存放配置 publi ...
- Quartz基础+实例
1. 介绍 Quartz体系结构: 明白Quartz怎么用,首先要了解Scheduler(调度器).Job(任务)和Trigger(触发器)这3个核心的概念. 1. Job: 是一个接口,只定义一个方 ...
- Quartz基础知识了解(一)
一.QuartZ是什么? 二.获取 三.核心接口 Scheduler - 与调度程序交互的主要API. Job - 由希望由调度程序执行的组件实现的接口. JobDetail - 用于定义作业的实例. ...
- SpringBoot之Quartz基础
前言:由于我们本项目选用的Springboot来整合Quartz,官方给我们提供了启动器所以很简单.在以前的版本我们想要使用Quartz需要引入的依赖如下: <dependency> &l ...
- Quartz.Net 调度框架配置介绍
在平时的工作中,估计大多数都做过轮询调度的任务,比如定时轮询数据库同步,定时邮件通知等等.大家通过windows计划任务,windows服务等都实现过此类任务,甚至实现过自己的配置定制化的框架.那今天 ...
- 10 -- 深入使用Spring -- 5...2 在Spring中使用Quartz
10.5.2 在Spring中使用Quartz Spring 的任务调度抽象层简化了任务调度,在Quartz基础上提供了更好的调度抽象.本系统使用Quartz框架来完成任务调度,创建Quartz的作业 ...
- Quartz使用及注意事项
Quartz使用及注意事项 前提:目前由于公司业务决定,大量使用Quartz,每天固定的时间点执行相应的业务逻辑,,几十个时间点应该是有的,某一个时间点如果没有执行带来的问题是巨大的.Quartz的稳 ...
- Quartz-第一篇 认识Quartz
1.什么是Quartz Quartz是一个任务调度框架,借助Cron表达式,Quartz可以支持各种复杂的任务调度.JDK中也提供了简单的任务调度,java.util.Timer. Quartz的三大 ...
随机推荐
- HDU 4675 GCD of Sequence(莫比乌斯反演 + 打表注意事项)题解
题意: 给出\(M\)和\(a数组\),询问每一个\(d\in[1,M]\),有多少组数组满足:正好修改\(k\)个\(a\)数组里的数使得和原来不同,并且要\(\leq M\),并且\(gcd(a_ ...
- docker镜像拉取、运行、删除
1.拉取hello-world镜像并运行 docker pull hello-world 拉取hello-world镜像Using default tag: latestlatest: Pulling ...
- React render algorithm & Fiber vs Stack
React render algorithm & Fiber vs Stack React 渲染算法 & Fiber vs Stack https://stackoverflow.co ...
- ES6 Map All In One
ES6 Map All In One Map 字典/地图 Set 集合 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...
- 使用 js 实现十大排序算法: 希尔排序
使用 js 实现十大排序算法: 希尔排序 希尔排序 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
- Dart: List排序
var list = <Item>[ Item(title: "item 1", isTopping: true), Item(title: "item 2& ...
- Spring Security 实战干货:OAuth2登录获取Token的核心逻辑
1. 前言 在上一篇Spring Security 实战干货:OAuth2授权回调的核心认证流程中,我们讲了当第三方同意授权后会调用redirectUri发送回执给我们的服务器.我们的服务器拿到一个中 ...
- 微信小程序(五)-常见组件(标签)
常见组件(标签) https://developers.weixin.qq.com/miniprogram/dev/component/ 1.view 代替以前的div标签 2.text 1.文本标签 ...
- Vue学习笔记-基于CDN引入方式简单前后端分离项目学习(Vue+Element+Axios)
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
- 生成UUID的代码
代码: String reqId = UUID.randomUUID().toString().replace("-", "");