Spring quartz 使用中的定时器,停滞问题
来源:互联网 发布:淘宝买家账号钻石级别 编辑:程序博客网 时间:2024/05/17 02:57
在spring中使用quartz,碰到定时器卡死,实际上并不是定时器卡死,而且上次任务没有退出。
项目中,单独建了一个文件管理quartz的配置
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:p="http://www.springframework.org/schema/p"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">
trigger <!-- 调度工厂 -->
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="everyTenSeconds"/>
</list>
</property>
</bean>
<!-- 调度触发器 -->
<bean id="everyTenSeconds" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="tenSecJob" />
</property>
<property name="cronExpression">
<value>*/10 * * * * ?</value>
</property>
</bean>
<bean id="tenSecJobTask" class="com.gaode.dike.task.tenSecJobTask"/>
<bean id="tenSecJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="group" value="tenSecJob_group"/>
<property name="name" value="tenSecJob_name"/>
<property name="concurrent" value="false"/>
<property name="targetObject">
<ref bean="tenSecJobTask"/>
</property>
<property name="targetMethod">
<value>tenSecs</value>
</property>
</bean>
*** false 代表,上次一次任务结束,下一次才执行,这也是卡死的原因之一
<property name="concurrent" value="false"/>
public class ScheduleTask {
public void tenSecs(){
logger.info(" ----- tenSecs------ ");
// 任务执行,不退出
logger.info(" -- END -- !!!! ScanOneHourTask !!!!--- ");
}
}
由于上次任务没有退出,造成定时器定制,下次任务没有触发
任务没有退出,原因有几种
1. 线程死锁 (jstack 查看)
2. 网络链接超时不退出 (一定要设置网络超时timeout,和重试机制),数据库链接也要设置timeout,避免链接死锁
3. 运算任务超长,CPU,内存不够
- Spring quartz 使用中的定时器,停滞问题
- 定时器Quartz在Spring中的使用
- spring中的定时器 Quartz
- Spring+Quartz定时器的使用
- spring 中使用Quartz 定时器
- Spring Quartz定时器的使用
- spring定时器(Quartz)的使用
- Spring-Quartz定时器的使用
- Spring中的Quartz配置 Spring 定时器 java定时器
- Spring中的Quartz配置 Spring 定时器 java定时器
- Spring 中的定时器TimerTask 与 quartz
- spring中quartz定时器的使用
- Spring 使用 Quartz 任务调度定时器
- spring 框架下使用quartz 定时器
- Quartz Spring 定时器 入门到使用
- Spring中quartz定时器的使用
- Spring中Quartz定时器的使用
- spring中的quartz调度问题
- springMVC复习笔记
- 笛卡尔积
- hdu 1715 大菲波数(java)
- adb连不上的问题
- MySQL之长连接、短连接、连接池(转载:http://www.ywnds.com/?p=9801)
- Spring quartz 使用中的定时器,停滞问题
- 单链表根据index obj删除
- 黄仁勋
- string里find()函数,判断字符串是否包含某个子串
- 内存分区(C语言)
- 【SSH隧道】使用
- 字符识别OCR(optical character recognition)经典框架解析
- JavaWeb框架-MyBatis-1-环境搭建
- HDU 2391 Filthy Rich(动态规划)