ssm框架利用timer类创建定时任务

来源:互联网 发布:淘宝联盟的优惠券在哪 编辑:程序博客网 时间:2024/05/29 06:55

applicationContext.xml  文件配置添加

<!-- 执行的任务类 -->

<bean id="task" class="wang.iky.job.TaskExecutor"></bean>
<!-- 触发器 以及任务的执行规则 -->
<bean id="repeatingTrigger" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<!--启10秒后执行 -->
<property name="delay">
<value>10000</value>
</property>
<!--每隔一小时执行一次 3600000 -->
<property name="period">
<value>20000</value>  //这里设置每20秒执行一次
</property>
<!--注入要监控的javaBean -->
<property name="timerTask">
<ref bean="task" />
</property>
<!--类型是否为fixedRate型,默认为fixedDelay -->
<!-- <property name="fixedRate"> -->
<!-- <value>false</value> -->
<!-- </property> -->
</bean>
<!-- 注册触发器 -->
<bean id="scheduler" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="daemon">


<value>true</value>


</property>
<property name="scheduledTimerTasks">
<list>
<ref bean="repeatingTrigger" />
</list>
</property>

</bean>

java代码



import java.util.TimerTask;


import javax.annotation.Resource;


import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;


import wang.iky.bean.Myjob;
import wang.iky.service.MyjobService;

/** sync task */

import wang.iky.util.DbContextHolder;


import java.util.Calendar;
import java.util.TimerTask;


/**
 * 可以再这个类中加入 service 执行类中的方法
 */


public class TaskExecutor extends TimerTask {
private static boolean isRunning = false;
@Autowired
private MyjobService myjobService;


public void run() {
/*System.out.println("开始执行指定任务");
try {
if (!isRunning) {  //下面代码即逻辑处理代码
isRunning = true; 
Myjob myjob = new Myjob();
myjob.setDosomething("写了个定时任务");
myjob.setXh(1);
myjob.setHowtodo("就是利用spring  Quartz写的");
DbContextHolder.setDbType("ds2");
myjobService.insert(myjob);
System.out.println("指定任务执行结束");
isRunning = false; // 任务执行结束就 打开执行的锁定
// }
} else {
System.out.println("上一次任务执行还未结束");
}


} catch (Exception e) {
e.printStackTrace();


}*/
}
}


0 0
原创粉丝点击