J2EE中SSH框架下Quartz定时器的简单应用

j2ee适合什么项目,j2ee用什么开发工具

之前提到过项目中要添加一个定时任务,原有的timer定时器在遇到异常后终止,不能满足业务的需要。今天决定采用另一种定时器Quartz来做。具体过程如下:

创建业务处理类

public class MyTask {

  1. private static final Log log = LogFactory.getLog(MyTask.class);

  2. public void run() {

  3. try {

  4. String arr[] = null;

  5. // 此处执行具体的操作

  6. java.util.Date datelog = new java.util.Date();

  7. log.info("listener开始调度,当前时间:" + datelog.toString());

  8. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");

  9. String workdate = sdf.format(datelog).substring(8, 10);

  10. int mm = Integer.valueOf(workdate);

  11. String str = webSiSecurityInfoService.querySms(workdate);

  12. if (!"".equals(str)) {

  13. arr = new String[3];

  14. arr[0] = WebServiceCommmons.getResponseHeaderXmlInfoByNode(

  15. str, "FaultCode"); // 获取返回代码

  16. arr[1] = WebServiceCommmons.getResponseHeaderXmlInfoByNode(

  17. str, "FaultString"); // 获取错误信息

  18. if (arr[0] == null || "".equals(arr[0])

  19. || !"01".equals(arr[0])) {// 失败抛出异常信息

  20. System.out.println("短信发送失败,发送报文为:" + str + "@响应报文信息为:"

  21. + arr[0] + ":" + arr[1]);

  22. log.error("短信发送失败,发送报文为:" + str + "@响应报文信息为:" + arr[0]

  23. + ":" + arr[1]);

  24. } else {

  25. System.out.println("短信发送成功");

  26. }

  27. }

  28. } catch (Throwable a) {

  29. }

  30. }

  31. }

配置在Spring配置文件中配置相关bean

  1. <bean name="mytask" class="com.shunde.servlet.MyTask.java" />--业务处理类

  2. <bean id="mytaskJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">--配置job

  3. <property name="targetObject" ref="mytask"></property>--业务处理类的beanid

  4. <property name="targetMethod" value="run"></property>--业务处理类中的方法

  5. <property name="concurrent" value="false"></property>--是否并发,为否

  6. </bean>

  7. <bean id="mytaskTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">--触发器

  8. <property name="jobDetail" ref="mytaskJob"/>--配置触发的job

  9. <property name="cronExpression" value="0 0/20 8-18 * * ?"></property>--设置cron表达式 当前为每天8点到下午6点每隔20分钟触发一次

  10. </bean>

  11. <bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--配置定时器调度bean

  12. <property name="triggers">

  13. <list>

  14. <ref local="mytaskTrigger" />--配置要调度的触发器

  15. </list>

  16. </property>

  17. </bean>

配置web.xml加载spring配置文件

  1. <context-param>

  2. <param-name>contextConfigLocation</param-name>

  3. <param-value>/WEB-INF/config/spring-common.xml</param-value>

  4. </context-param>

以上配置完成之后,启动应用服务,定时器就启动了,并会按照设定的时间定时执行任务。

小编拙见,有不对之处,欢迎下方留言