quartz时间配置

SpringBoot之旅 -- 定时任务两种(Spring Schedule 与 Quartz 整合 )实现

大憨熊 提交于 2019-12-24 21:01:50
SpringBoot之旅 -- 定时任务两种(Spring Schedule 与 Quartz 整合 )实现 相关文章 Spring Boot 相关文章目录 前言 最近在项目中使用到定时任务,之前一直都是使用Quartz 来实现,最近看Spring 基础发现其实Spring 提供 Spring Schedule 可以帮助我们实现简单的定时任务功能。 下面说一下两种方式在Spring Boot 项目中的使用。 Spring Schedule 实现定时任务 Spring Schedule 实现定时任务有两种方式 1. 使用XML配置定时任务, 2. 使用 @Scheduled 注解。 因为是Spring Boot 项目 可能尽量避免使用XML配置的形式,主要说注解的形式. Spring Schedule 提供三种形式的定时任务: 固定等待时间 @Scheduled(fixedDelay = 时间间隔 ) @Component public class ScheduleJobs { public final static long SECOND = 1 * 1000; FastDateFormat fdf = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss"); @Scheduled(fixedDelay = SECOND * 2)

c#之 quartz的学习

匿名 (未验证) 提交于 2019-12-02 23:34:01
  目录:     一. Quartz的API     二.Trigger 的使用     三.使用 JobDataMap 来往Job中传值     五.SimpleTrigger     六.CronTrigger 一. Quartz的API IScheduler - 与 scheduler 进行交互的主要接口 IJob - 你希望被 scheduler 执行的组件的接口 IJobDetail - 用于定义 Jobs 实例 ITrigger - 定义将会在scheduler上执行的 job 上的组件 JobBuilder - 用于定义或建立(define/build) JobDetail 实例,JobDetail定义了Jobs实例 TriggerBuilder - 用于定义或建立 Trigger 实例 这一篇 二.Trigger 的使用 // define the job and tie it to our HelloJob class IJobDetail job = JobBuilder.Create<HelloJob>() .WithIdentity("myJob", "group1") // name "myJob", group "group1" .Build(); // Trigger the job to run now, and then every 40

Quartz任务调度(5)TriggerListener分版本超详细解析

三世轮回 提交于 2019-12-01 10:21:28
TriggerListener 在我们的触发器监听器中,也包含了一系列监听方法 方法 说明 getName() 定义并返回监听器的名字 triggerFired() 当与监听器相关联的 Trigger 被触发,Job 上的 execute() 方法将要被执行时,Scheduler 就调用这个方法。在全局 TriggerListener 情况下,这个方法为所有 Trigger 被调用。 vetoJobExecution() 在 Trigger 触发后,Job 将要被执行时由 Scheduler 调用这个方法。TriggerListener 给了一个选择去否决 Job 的执行。假如这个方法返回 true,这个 Job 将不会为此次 Trigger 触发而得到执行。 triggerMisfired() Scheduler 调用这个方法是在 Trigger 错过触发时。如这个方法的 JavaDoc 所指出的,你应该关注此方法中持续时间长的逻辑:在出现许多错过触发的 Trigger 时,长逻辑会导致骨牌效应。你应当保持这上方法尽量的小。 triggerComplete() Trigger 被触发并且完成了 Job 的执行时,Scheduler 调用这个方法。这不是说这个 Trigger 将不再触发了,而仅仅是当前 Trigger 的触发(并且紧接着的 Job 执行) 结束时。这个

net core WebApi——定时任务Quartz

╄→гoц情女王★ 提交于 2019-11-30 23:53:46
原文: net core WebApi——定时任务Quartz 目录 前言 Quartz 测试 问题及解决方法 小结 前言 本来打算昨天都开始写这篇,就因为要把小团队的博客整理汇总,一看二哈的博客那么多,一个个复制粘贴肯定麻烦(其实是我自己觉得复制麻烦),所以穿插着写了个小爬虫,后续写差不多了就拿出来晾晾吧(py菜鸡水平)。 之前开发的时候,忽略了记录,等到想写点儿啥跟后台有关的东西的时候,还得一点点回忆,最近是因为同事给我说,"哎,每个月把数据给我统计下做个界面展示啊"。一想到每个月我要做次操作就头疼,咦,不对,这不就是写个 定时任务 就搞定了嘛。 Quartz 其实在选这个定时器的类库的时候,我在 Hangfire 两者间徘徊,后来是想到不管用什么方法什么工具都是次要的,主要看你怎么用,用到哪,图形界面是需要但不是必要,分秒级别的控制也都是看你自己业务需要,定时器就后台挂起运行就行了没必要让我看见,想操作了再说吧,就这样愉快的决定使用 Quartz 。 首先,依然是在我们Util的工程引入包。 引入完成后,在我们的入口Startup中添加实例的注册声明。 public IServiceProvider ConfigureServices(IServiceCollection services) { ServiceInjection.ConfigureRepository

quartz CronExpression表达式

梦想的初衷 提交于 2019-11-30 20:50:17
一个cron表达式有至少6个(或7个)由空格分隔的时间元素。 按顺序依次为: 1、秒(0~59) 2、分(0~59) 3、时(0~23) 4、日(0~31,但需要考虑指定月的天数) 5、月(0~11) 6、周(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 7、年(1970-2099) 其中每个元素可以是一个值(如6)、一个连续区间(9-12)、一个间隔时间(8-18/4)(/表示每隔4小时)、一个列表(1,3,5)或通配符。 “*”字符代表所有可能的值因此,“*”在子表达式“月”中表示每个月的含义,“*”在子表达式“周”中表示星期的每一天。 由于"月份中的日期"和"周中的日期"这两个元素互斥的,必须要对其中一个设置?. 有些子表达式能包含一些范围或列表例如:子表达式“周”可以为 “MON-FRI”,“MON,WED,FRI”,“MON-WED,SAT” “/”字符用来指定数值的增量例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟; 在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样; “?”字符仅被用于天(月)和天(周)两个子表达式中,表示不指定值当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?”; “L” 字符仅被用于天(月)和天(周

net core WebApi——定时任务Quartz

蓝咒 提交于 2019-11-30 14:22:58
目录 前言 Quartz 测试 问题及解决方法 小结 前言 本来打算昨天都开始写这篇,就因为要把小团队的博客整理汇总,一看二哈的博客那么多,一个个复制粘贴肯定麻烦(其实是我自己觉得复制麻烦),所以穿插着写了个小爬虫,后续写差不多了就拿出来晾晾吧(py菜鸡水平)。 之前开发的时候,忽略了记录,等到想写点儿啥跟后台有关的东西的时候,还得一点点回忆,最近是因为同事给我说,"哎,每个月把数据给我统计下做个界面展示啊"。一想到每个月我要做次操作就头疼,咦,不对,这不就是写个 定时任务 就搞定了嘛。 Quartz 其实在选这个定时器的类库的时候,我在 Hangfire 两者间徘徊,后来是想到不管用什么方法什么工具都是次要的,主要看你怎么用,用到哪,图形界面是需要但不是必要,分秒级别的控制也都是看你自己业务需要,定时器就后台挂起运行就行了没必要让我看见,想操作了再说吧,就这样愉快的决定使用 Quartz 。 首先,依然是在我们Util的工程引入包。 引入完成后,在我们的入口Startup中添加实例的注册声明。 public IServiceProvider ConfigureServices(IServiceCollection services) { ServiceInjection.ConfigureRepository(services); services.AddMvc()