quartz

SpringBoot+Quartz定时任务:Job类对象注入问题(定时任务报错)

こ雲淡風輕ζ 提交于 2019-12-05 14:52:37
1、quartz的扫描的优先级比 @Autowired注入对象的优先级高; 2、可以使用springbean获取对象 eg: ILeaseLeasorBlacklistService blacklistservice = SpringUtils.getBean(ILeaseLeasorBlacklistService.class); ILeaseSupplierCompanyinforService companyinforservice = SpringUtils.getBean(ILeaseSupplierCompanyinforService.class); 3、springUtils的代码如下: package com.admin.common.utils.spring; import org.springframework.aop.framework.AopContext; import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import

.NET Core 2.2使用最新版的Quartz.Net3.0.7 入门教程

末鹿安然 提交于 2019-12-05 14:09:13
Quartz是什么?官网: http://www.quartz-scheduler.org Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。 Quartz 可以与 J2EE 与 J2SE 应用程序相结合也可以单独使用。 Quartz 允许程序开发人员根据时间的间隔来调度作业。 Quartz 实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联 Quartz.Net 是Quartz 的net实现 ,github: https://github.com/quartznet/quartznet 在项目的开发过程中,难免会遇见后需要后台处理的任务,例如定时发送邮件通知、后台处理耗时的数据处理等,这个时候你就需要Quartz.Net了。 Quartz.Net是纯净的,它是一个.Net程序集,是非常流行的Java作业调度系统Quartz的C#实现。 Quartz.Net一款功能齐全的任务调度系统,从小型应用到大型企业级系统都能适用。功能齐全体现在触发器的多样性上面,即支持简单的定时器,也支持Cron表达式;即能执行重复的作业任务,也支持指定例外的日历;任务也可以是多样性的,只要继承IJob接口即可。 对于小型应用,Quartz.Net可以集成到你的系统中,对于企业级系统,它提供了Routing支持

SpringBoot quartz定时器

♀尐吖头ヾ 提交于 2019-12-05 12:13:52
<!-- 案例1 --> <!-- 定时器 --> <bean name="CodeTest" class="com.aaa.bbb.controller.cccc.dddd"></bean> <bean id="CodeTestDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 调用类 --> <property name="targetObject"> <ref bean="CodeTest"/> </property> <!-- 调用方法 --> <property name="targetMethod"> <value>testCode</value> </property> </bean> <!-- 定时器调度设置 --> <bean id="CodeTestTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <!-- 总调度设置 --> <property name="jobDetail"> <ref bean="CodeTestDetail"/> </property> <!-- 调度时效设置[秒 分 小时 日 月 周 年]

Quartz使用总结

旧街凉风 提交于 2019-12-05 09:57:41
声明:这里参考了许多博客,加上自身的使用总结。如果您是知识的原创者,可以在评论区写上您的博文链接~ 一、删除任务的顺序 delete from qrtz_cron_triggers; #存放cron类型的触发器 delete from qrtz_simple_triggers; #简单触发器的信息 delete from qrtz_triggers; #触发器的基本信息 delete from qrtz_job_details; #存放任务的详细信息 delete from qrtz_scheduler_state; #调度器状态 delete from qrtz_locks; #存储程序的悲观锁的信息 二、注入Service失败原因分析 1. 这个Job是由quartz实例化出来的,不受Spring的管理,所以就导致注入失败。 2. 在quartz框架中,Job 是通过反射出来的实例,不受spring的管理。 Scheduler现在交给Spring生成,在Spirng-context-support的jar包下 org.springframework.scheduling.quartz包中有个SpringBeanJobFactory的类, job实例通过该类的createJobInstance方法创建。根据Scheduler context、job data map and

spring boot-mybatis-quartz-druid-swagger2-整合

北城余情 提交于 2019-12-05 07:58:24
说明:主要演示如何整合,简单的任务调用。 环境准备: jdk:1.7 maven:3.2.3 开发工具:IDEA 源码地址: gitosc: https://git.oschina.net/zhengweishan/spring-boot_demo github: https://github.com/wesley5201314/spring-boot-demo 项目结构: 备注: 每个包的作用大家一看就明白了,这里主要说明下application.properties:这里主要配置针对于不同的环境用那个配置文件,这里我只提供了开发,测试的环境属性文件。配置如下: spring.profiles.active = dev 项目启动: //启动入口 @SpringBootApplication @ServletComponentScan //扫描Servlet @MapperScan("com.springboot.demo.dao") //扫描dao public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } } 启动之后访问: durid : http://localhost:8080/druid/index.html 如图: 配置代码:

Quartz任务调度系统,克隆表达式

a 夏天 提交于 2019-12-05 07:09:28
Quartz 任务调度系统,克隆表达式 (1) 、克隆表达式可以包括 7 个字段:秒、分、小时、月内日期、月、周内日期、年 ( 可选字段 ) (2) 、特殊字符: 一、反斜线 (/) 字符表示增量。 "5/15" 代表从第 5 秒开始,每 15 秒一次。 二、问 号 (?) 字符和字母 L 字符只能在月内日期和周内日期字段中可用。问号表示这个字段不包含具体值,所以,如果指定月内日期,可以在周内日期字段中插入 "?" ,表示周内日期值无关紧要,字母 L 放在月内日期字段中,表示安排在当月最后一天执行。 三、在月内日期字段中的字母 (W) 字符把执行安排在最靠近指定值的工作日,把 "1W" 放在月内日期字段中,表示把执行安排在当月的第一个工作日内。 四、井号 (#) 字符为给定月份指定具体的工作日实例。把 "MON#2" 放在周内日期字段中,表示把任务安排在当月的第二个星期一。 五、星号 (*) 字符是通配字符,表示该字段可以接受任何可能的值。 来源: https://www.cnblogs.com/lingboweifu/p/11912972.html

Java 定时任务调度工具 Quartz(Part 2)

自作多情 提交于 2019-12-05 05:20:51
一、浅谈Job和JobDetail 1、Job接口:实现业务逻辑的任务接口,execute方法中实现具体逻辑(类似与TimerTask的run方法), 1.1 Job实例在Quartz中的生命周期: 每次调度器执行Job时,它在调用execute方法前会创建一个新的job实例,当调用完成后,关联的job对象实例被释放,释放的实例会被垃圾回收机制回收。 2、JobDetail(绑定job,又携带需要使用的属性):为Job实例提供了许多设置属性,以及JobDataMap成员变量属性,他用来存储特定Job实例的状态信息,调度器需要借助JobDetail对象来添加Job实例。 2.1 重要属性:name/group/jobClass/jobDataMap name:jobDetail.getKey().getName(); group:(默认DEFAULT组)jobDetail.getKey().getGroup(); jobClass:jobDetail.getJobClass().getName(); 二、浅谈JobExecutionContext与JobDataMap 1、JobExecutionContext:当scheduler调用一个Job,就会将JobExecutionContext传递给Job的execute()方法

Quartz常规操作

寵の児 提交于 2019-12-05 02:50:36
原创转载请注明出处: https://www.cnblogs.com/agilestyle/p/11899532.html Project Directory Maven Dependency 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>org.fool.quartz</groupId> 8 <artifactId>helloquartz</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 <dependencies> 12 <dependency> 13 <groupId>org.quartz-scheduler</groupId> 14 <artifactId>quartz<

@Transactional事务几点注意及其属性Propagation的使用

耗尽温柔 提交于 2019-12-05 02:31:29
@Transactional事务几点注意 这里面有几点需要大家留意: A. 一个功能是否要事务,必须纳入设计、编码考虑。不能仅仅完成了基本功能就ok。 B. 如果加了事务,必须做好开发环境测试(测试环境也尽量触发异常、测试回滚),确保事务生效。 C. 以下列了事务使用过程的注意事项,请大家留意。 1. 不要在接口上声明 @Transactional ,而要在具体类的方法上使用 @Transactional 注解,否则注解可能无效。 2.不要图省事,将@Transactional放置在类级的声明中,放在类声明,会使得所有方法都有事务。故@Transactional应该放在方法级别,不需要使用事务的方法,就不要放置事务,比如查询方法。否则对性能是有影响的。 3.使用了@Transactional的方法,对同一个类里面的方法调用, @Transactional无效。比如有一个类Test,它的一个方法A,A再调用Test本类的方法B(不管B是否public还是private),但A没有声明注解事务,而B有。则外部调用A之后,B的事务是不会起作用的。(经常在这里出错) 4.使用了@Transactional的方法,只能是public,@Transactional注解的方法都是被外部其他类调用才有效,故只能是public。道理和上面的有关联。故在 protected、private 或者