小记:Quartz StartNow() 无效

今天遇到一个问题,调度器在启动时无法立刻开始执行任务,代码如下:

var trigger = TriggerBuilder.Create()
    .StartNow()  //此处无效
    .WithCronSchedule("0 0/30 10-20 * * ?")
    .Build();

F12 可以看到 StartNow() 注释如下:

//
// 摘要:
//     Set the time the Trigger should start at to the current moment - the trigger
//     may or may not fire at this time - depending upon the schedule configured
//     for the Trigger.
//
// 返回结果:
//     the updated TriggerBuilder
public TriggerBuilder StartNow();

在 stockoverflow 上查找结果如下

地址:http://stackoverflow.com/questions/19219560/quartz-trigger-builder-startnow-not-firing-the-trigger-during-the-start

由上述得知,当使用 Cron 表达式时,StartNow 方法不会起任何效果,Cron 有其自己的执行时间。目前看来 StartNow 应该只适用于 SimpleTrigger 触发器。

解决方法:

1.如上图,增加一个仅有 StartNow 的触发器来立刻触发 Job

2.可在 scheduler.Start() 启动前手动调用执行 Job 一次

时间: 2024-08-05 11:16:12

小记:Quartz StartNow() 无效的相关文章

Quartz定时任务使用小记(11月22日)

骤然接触quartz,先从小处着手,why,what,how quartz定时任务: 为什么使用quartz定时任务,以及定时任务在实际应用场景下的特定需求. 1.用户方面的需要,为了提供更好的使用体验,例如,针对用户注册的监听,最终得到用户使用一定阶段各种提醒.互动方面的业务使用,以及针对用户生日的监听及定时任务的设置 2.数据更新的需要,针对公司日终报表的设计,这里就涉及今日的主题,数据库相关存储过程的调用.存储过程是可执行的代码块,效率相对java后台代码效率要高,尤其是针对查询时,选用存

小记:Quartz 当 Job 执行时间超过触发间隔时间时所发生的情况

一个普通的 Job 实现如下: public class Job1 : IJob { public void Execute(IJobExecutionContext context) { Console.WriteLine(DateTime.Now + ": Job1" + m); } } public class Program { static void Main(string[] args) { var props = new NameValueCollection(); //

quartz入门

quartz有两个重要对象,作业JobDetail和触发器Trigger,它们是多对多的关系 作业 JobDetail JobDetail jobDetail = JobBuilder.newJob(HelloQuartzJob.class) .withIdentity("testJob_1", "group_1") .build(); 触发器 Trigger,Quartz有两大触发器,SimpleTrigger和CronTrigger Trigger trigge

任务调度框架-Quartz.Net

使用Quartz.Net依赖于以下3个组件:Common.Logging.dll.Common.Logging.Core.dll.Quartz.dll 简单封装 1 using Quartz; 2 using Quartz.Impl; 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Text; 7 using System.Threading.Tasks; 8 9 na

Quartz.NET简介及入门指南

Quartz.NET简介 Quartz.NET是一个功能完备的开源调度系统,从最小的应用到大规模的企业系统皆可适用. Quartz.NET是一个纯净的用C#语言编写的.NET类库,是对非常流行的JAVA开源调度框架 Quartz 的移植. 入门指南 本入门指南包括以下内容: 下载 Quartz.NET 安装 Quartz.NET 根据你的特定项目配置 Quartz 启动一个样例程序 下载和安装 你可以下载 zip 文件或使用 Nuget 程序包.Nuget 程序包只包含 Quartz.NET 运

定时器(Quartz)快速入门

Quartz概述 Quartz中的触发器 Quartz中提供了两种触发器,分别是CronTrigger和SimpleTrigger. SimpleTrigger 每 隔若干毫秒来触发纳入进度的任务.因此,对于夏令时来说,根本不需要做任何特殊的处理来"保持进度".它只是简单地保持每隔若干毫秒来触发一次,无论你的 SimpleTrigger每隔10秒触发一次还是每隔15分钟触发一次,还是每隔24小时触发一次. CronTrigger 在特定"格林日历"时刻触发纳入进程的

【微信】微信获取TOKEN,以及储存TOKEN方法,Spring quartz让Token永不过期

官网说明 access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发者需要进行妥善保存.access_token的存储至少要保留512个字符空间.access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效. 公众平台的API调用所需的access_token的使用及生成方式说明: 1.为了保密appsecrect,第三方需要一个access_token获取和刷新的中控服务器.而其他业务逻辑服务器所

Quartz——定时任务

Quartz之前版本的使用:http://blog.csdn.net/huihuimimi17/article/details/8215779 2之后的版本使用:简单使用 package com.bxw; import java.util.Date; import org.quartz.DateBuilder; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Scheduler; impor

SSH系列:(29)使用Quartz 实现自动受理

需求中要求每月月底将上个月的投诉自动处理为已失效.要求是每月月底,所以定时任务应该将处理时间设置在每月的月底:处理的任务是将上个月的未受理的投诉信息自动将其状态设置为已失效. 将自动受理的方法加入到complainService/complainServiceImpl中,以便事务控制: ComplainService.java package com.rk.tax.service; import com.rk.core.service.BaseService; import com.rk.tax