java에서spring 시간 작업 구현 코드

4810 단어 spring정시 임무

import org.apache.log4j.*;
public class TaskJob {
       public static Logger log = Logger
                     .getLogger(TaskJob.class);
       public void SayHello() {
              // TODO Auto-generated method stub
              try {
                     log.info(" >........");
                     //
                     System.out.println(" [" + new java.util.Date().toLocaleString()
                                   + "]-----> !");
                     log.info(" !");
              } catch (Exception e) {
                     log.error(" ", e);
              }
       }

}

2. 다음 스프링 구성:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean name="taskJob" class="util.TaskJob" />

    <bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
       <property name="targetObject">
           <ref bean="taskJob" />
       </property>
       <property name="targetMethod">
           <value>SayHello</value>
       </property>
    </bean>
    <!-- -->
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <!-- jobDetail taskJob, jobDetail , MethodInvokingJobDetailFactoryBean -->
       <property name="jobDetail">
           <ref bean="methodInvokingJobDetail" />
       </property>
       <!-- 8 21 1 , -->
       <property name="cronExpression">
           <value>0 * 08-21 * * ?</value>
       </property>

    </bean>

    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
       <!-- -->
       <property name="triggers">
           <list>
              <ref local="cronTrigger" />
           </list>
       </property>
    </bean>

</beans>

3. 테스트 실행 클래스,spring 프로필을 불러오면 정시 작업이 실행되는 것을 볼 수 있습니다..

package util;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestApp {


public static void main(String[] args) {
    // TODO Auto-generated method stub
        System.out.println(" spring ....");
      ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
      System.out.println(" !");
//   ApplicationContext context2 = new ClassPathXmlApplicationContext("test/timerTask/quartzTimer.xml");
}
}

웹 프로젝트에서 실행하려면 웹에서도 실행해야 합니다.xml에 다음 코드를 추가합니다.

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
다음은 필드 허용 값이 허용하는 특수 문자 초 0-59, - */분 0-59, - */시간 0-23, - */날짜 1-31, - *?/L W C 월 1-12 또는 JAN-DEC, - */월요일 1-7 또는 SUN-SAT, - *?/L C# 년(옵션) 비어 있음, 1970-2099, - */표현식 의미 "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/5 14*?"매일 오후 2시부터 오후 2시 55분까지 5분마다 "0/5 14, 18 * *?"매일 오후 2시부터 2:55까지, 오후 6시부터 6:55까지 5분마다 "0 0-5 14 * *?"매일 오후 2시부터 오후 2시까지 1분마다'0 10,44 14?3 WED'를 터치합니다. 매년 3월 수요일 오후 2:10과 2:44는'0 15 10?* MON-FRI'를 터치합니다. 월요일부터 금요일까지 오전 10:15는'0 15 10 15 *?'매월 15일 오전 10시 15분 "0 15 10 L *?"매월 마지막 날 오전 10:15 "0 15 10?* 6L"트리거 매월 마지막 금요일 오전 10:15 "0 15 10?* 6L 2002-2005"2002년부터 2005년까지 매월 마지막 금요일 오전 10:15 "0 15 10?* 6 #3"트리거 매월 셋째 금요일 오전 10:15 트리거

좋은 웹페이지 즐겨찾기