quartz

使用quartz进行容器启动时登陆接口服务器和接口服务器进行心跳连接

可紊 提交于 2019-12-27 16:52:22
1、下载quartz的相应jar包 2、增加spring配置文件(applicationContext-quartz.xml) 内容如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema

Quartz的cron表达式

旧城冷巷雨未停 提交于 2019-12-27 16:52:09
一个 cron 表达式有至少6个(也可能7个)有空格分隔的时间元素。 按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,但是你需要考虑你月的天数) 月(0~11) 天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 7.年份(1970-2099) 其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?. 0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时 0 0 12 ? * WED 表示每个星期三中午12点 "0 0 12 * * ?" 每天中午12点触发 "0 15 10 ? * *" 每天上午10:15触发 "0 15 10 * * ?" 每天上午10:15触发 "0 15 10 * * ? *" 每天上午10:15触发 "0 15 10 * * ? 2005" 2005年的每天上午10:15触发 "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发

Quartz的cron表达式

可紊 提交于 2019-12-27 16:41:00
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。 按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,但是你需要考虑你月的天数) 月(0~11) 天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 7.年份(1970-2099) 其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?. 0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时 0 0 12 ? * WED 表示每个星期三中午12点 "0 0 12 * * ?" 每天中午12点触发 "0 15 10 ? * *" 每天上午10:15触发 "0 15 10 * * ?" 每天上午10:15触发 "0 15 10 * * ? *" 每天上午10:15触发 "0 15 10 * * ? 2005" 2005年的每天上午10:15触发 "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 "0

如何优雅地重启Spring Scheduler

安稳与你 提交于 2019-12-26 16:05:48
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 定时任务是一个比较常见的功能,在某些情况下,需要重新启动或者是重设Scheduler Job,但是官方的API上都没有提供类似 restart 的方法,那该如何完成此需求呢? Spring Quartz Spring Quartz 是一整套完整的 Cron Job 架构,可以完成复杂的任务调度需求,支持任务持久化,事务化,甚至分布式。如果是基于 Spring Quartz 做的Scheduler,那么重启比较简单,Task的管理类 Scheduler 提供了非常多的方法,如 scheduleJob , unscheduleJob , rescheduleJob , deleteJob , addJob 等,通过这些方法的组合就以达到 重启 的目的,参考 此回答 。 Spring Scheduler Spring Scheduler 相对于 Spring Quartz 来说更简单,不需要额外引入 Quartz 的包,能够实现简单的任务调度功能。它内部基于 JDK 的定时任务线程池 ScheduledExecutorService 实现,由类 ScheduledTaskRegistrar 来负责定时任务的注册,类 TaskScheduler 负责对 JDK 类 ScheduledExecutorService

Quartz.Net使用教程

社会主义新天地 提交于 2019-12-26 12:32:02
Quartz.Net使用教程 在项目的开发过程中,难免会遇见后需要后台处理的任务,例如定时发送邮件通知、后台处理耗时的数据处理等,这个时候你就需要 Quartz.Net 了。 Quartz.Net 是纯净的,它是一个.Net程序集,是非常流行的Java作业调度系统Quartz的C#实现。 Quartz.Net 一款功能齐全的任务调度系统,从小型应用到大型企业级系统都能适用。功能齐全体现在触发器的多样性上面,即支持简单的定时器,也支持Cron表达式;即能执行重复的作业任务,也支持指定例外的日历;任务也可以是多样性的,只要继承IJob接口即可。 对于小型应用, Quartz.Net 可以集成到你的系统中,对于企业级系统,它提供了Routing支持,提供了Group来组织和管理任务,此外还有持久化、插件功能、 负载均衡 和故障迁移等满足不同应用场景的需要。 我们使用的是当前最新版本2.4.0进行演示。( 注意:高版本不适合当前教程 )添加引用以后,来创建一个Job类 1 static void Main(string[] args) 2 { 3 //1.首先创建一个作业调度池 4 ISchedulerFactory schedf = new StdSchedulerFactory(); 5 //2.实例化调度器工厂 6 ISchedulerFactory schedulefactory

MVC中使用Hangfire执行定时任务

孤人 提交于 2019-12-26 11:59:57
需求描述 项目中有一个通知公告的功能,在后台管理员添加公告后需要推送消息给所有注册用户,让其查看消息。消息推送移动端采用极光推送,但是消息在何时发送是个问题,比如说有一个重要的会议通知,可能希望在会议开始前半天进行提醒,仅仅使用后台代码处理起来可能比较麻烦,这时就需要考虑到使用作业来处理这种定时执行的业务。 在NET平台,作业有很多方式,可以diy一个系统作业,或者使用数据库的作业功能写一个定时执行,再有一种方案就是使用外部开源的定时任务系统来完成。 首先来说,采用系统DIY作业的方式。在不同平台上都有相应的命令来支持这一操作,完成起来也不是很难,但是这样的话应用程序会和系统高耦合,万一想换系统或者换服务器,作业内容直接丢失,再者如果搞不好维护起来也比较麻烦。所以这个pass掉了 再者说数据库,各大数据库也都支持作业功能,sql server 或者mysql等。同样面临的问题 第一,不同数据库命令不一致;第二,添加了作业以后在数据库调整,比如数据库服务迁移会导致作业中断;还有一点,数据库作业如果做定时数据更新,数据库备份是比较不错的选择,都在持久层层面,与业务无关。但是如果牵扯到业务,那就有些麻烦了,想象一下,数据库定时执行了一个邮件发送的任务,生成了一条邮件的记录,然后通知IIS相关进程发送邮件,很有些本末倒置的感觉。 前两者其实各有各的使用场景,还是那句话,技术没有好坏

springboot整合quartz异常

人盡茶涼 提交于 2019-12-25 19:00:08
背景:启动服务器时,启动定时任务,同时数据库记录了定时任务的信息,一切都是那么正常。但是我关闭了IDE,重启系统时异常发生了,报错如下: org.quartz.ObjectAlreadyExistsException: Unable to store Job : 'event_job_group.task_SaveFlightDataTask1', because one already exists with this identification。 经过分析得到的结论是由于数据库已经存在了task 的定义了,就是说重复了,只要将注入到容器当中的Scheduler 在初始化的时候clear()一下就好了: scheduler.clear(); 这波操作没问题,但是我就是那么诡异,经此操作后我在系统中调用接口添加的定时任务也一起没了!!!一起被清除掉了!!! 怎么解决呢? 好吧,上面的clear肯定不能再用了。 换种思路来解决: 启动系统时,先把已经存在的任务删除了再创建。注意:根据jobKey来删除。 /** * 监听器,启动定时任务 * * @author yangfeng * @date 2019-03-12 */ @Configuration public class ApplicationStartQuartzJobListener implements

Quartz.net Scheduler is working on local while debugging but not on production

送分小仙女□ 提交于 2019-12-25 14:39:12
问题 I have used Quartz.net for scheduling some task. The problem is that it's working only while debugging in the local. The code is not working on my local server and production as well. Please don't mark it as duplicate because none of the solution mentioned in other questions solved my issue. public class JobScheduler { public static ISchedulerFactory schedFact; public static IScheduler sched; public static void Start() { schedFact = new StdSchedulerFactory(); // get a scheduler sched =

SpringBoot2.1.6简单使用Quartz实现定时任务

时光总嘲笑我的痴心妄想 提交于 2019-12-25 12:12:55
1、首先在porm.xml文件引入如下依赖: 2、新建一个任务类(如下面代码中的CommentLikeJob),这个类要继承QuartzJobBean父类,实现void executeInternal()方法,方法内为定时任务的业务逻辑(下面代码的业务逻辑可以不用理会),此外,可以在任务类里面通过@Autowired或者@Resource注入被Spring托管的Bean来使用。 import com.tkt.commons.utils.RedisUtil; import com.tkt.dao.TktCommentLikeMapper; import com.tkt.dao.TktCommentMapper; import com.tkt.domain.TktCommentLike; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.scheduling.quartz

springboot整合quartz并配置JNDI数据源

牧云@^-^@ 提交于 2019-12-25 10:49:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java<