>Java >java지도 시간 >Java의 Spring 예약 작업 구현 코드

Java의 Spring 예약 작업 구현 코드

高洛峰
高洛峰원래의
2017-02-07 15:15:541351검색

으으아아아

2. 다음으로 봄에 구성하세요.

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);
              }
       }
}

3. 실행 클래스를 테스트하려면 스프링 구성 파일을 로드하는 동안 예약된 작업이 실행되는 것을 볼 수 있습니다.

<?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>

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

초 0-59, - * /

분 0-59, - * /
시간 0~23, - * /
날짜 1~31, - * ? / L W C
월 1~12 또는 JAN~DEC, - * /
주 1~7 또는 일요일 -SAT, - * ? / L C #
연도(선택) 비워두기, 1970-2099, - * /
표현 의미
"0 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 0/5 14 * * ?" 매일 오후 2시부터 오후 2시 55분까지 5분마다 트리거
"0 0/5 14,18 * * ?" 그리고 오후 6시부터 오후 6시 55분까지 5분마다
"0 0-5 14 * * ?" " 매일 오후 2시부터 오후 2시 55분까지 1분마다 트리거됩니다.
"0 10,44 14 3 WED" 트리거 3월 매주 수요일 오후 2시 10분과 오후 2시 44분
"0 15 10 ? * MON-FRI"는 월요일부터 금요일까지 오전 10시 15분에 트리거됩니다.
"0 15 10 15 * ?" 매월 15일 오전 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분에 발생

자바에서 더 많은 스프링 타이밍 작업 구현 코드 관련 글은 PHP 중국어 홈페이지를 주목해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.