Quartz 와 Spring 을 결합 할 때 어떻게 Job 의 시작 시간 을 동적 으로 업데이트 합 니까?

등급: http://www.blogjava.net/fastzch/archive/2010/04/27/189790.html
 
오늘 아침 한 친구 가 나 에 게 Spring 에서 Quartz 의 시작 시간 을 동적 으로 업데이트 하 는 방법 을 물 었 다. 나 는 다음 과 같이 기록 했다. 동적 으로 업 데 이 트 된 자바 류 는 다음 과 같다.
 
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class QuartzTest {
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
            "/applicationContext.xml");
    private static String INSTANCE_NAME = "DEFAULT";

    public void test() throws Exception {
        Scheduler sch = (Scheduler) context.getBean("BatchJobStarting");
        JobDetail myJob = sch.getJobDetail("CleanLogJob", INSTANCE_NAME);
        CronTrigger newTrigger = new CronTrigger("trig_batch", INSTANCE_NAME,
                "0/3 * * * * ?");
        JobDetail newJob = (JobDetail) myJob.clone();
        sch.deleteJob("CleanLogJob", INSTANCE_NAME);
        sch.scheduleJob(newJob, newTrigger);
    }

    public static void main(String[] args) {
        QuartzTest qt = new QuartzTest();
        try {
            qt.test();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

 
코드 를 비교적 누추 하 게 썼 는데 주로 test () 방법 입 니 다. 여러분 은 자신의 실제 상황 에 따라 다시 발휘 할 수 있 습 니 다. 예 를 들 어 웹 방식 으로 바 꾸 면 context 의 획득 은 웹 응용 프로그램 Context 에서 직접 얻 을 수 있 습 니 다.applicationContext. xml 설정 은 다음 과 같 습 니 다.
 
 <bean id="CleanLogJob"
        class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass">
            <value>com.***.***.biz.log.CleanLogJob</value>
        </property>
        <property name="jobDataAsMap">
            <map>
                <entry key="logService">
                    <ref bean="LogService" />
                </entry>
            </map>
        </property>
    </bean>
    <bean id="CleanLogJobTrigger"
        class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="CleanLogJob" />
        </property>
        <property name="cronExpression">
            <value>0 0 0 * * ?</value>
        </property>
    </bean>
    <bean id="BatchJobStarting"
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="CleanLogJobTrigger" />
            </list>
        </property>
    </bean>

 
인터넷 에 도 다른 해법 이 있 지만 나 보다 더 복잡 한 것 같 아. 하하...
댓 글:
#  
re: Quartz 와 Spring 을 결합 할 때 Job 의 시작 시간 을 어떻게 동적 으로 업데이트 하 는 지 2008 - 03 - 31 18: 09 |
꾀꼬리
여전히 코드 를 사용 해 야 합 니 다. Quartz 자신의 플러그 인 을 사용 하면 정기 적 으로 파일 을 검색 할 수 있 습 니 다. 실행 중 설정 을 바 꾸 어 저장 하면 됩 니 다.  
대답 하 다   
더 많은 댓 글
  
#  
re: Quartz 와 Spring 을 결합 할 때 Job 의 시작 시간 을 어떻게 동적 으로 업데이트 하 는 지 2008 - 03 - 31 21: 07 |
Robin's Java World
꾀꼬리
이렇게 좋 은 것 도 있 었 구나?이 플러그 인의 문 서 를 소개 하 였 습 니까?  
대답 하 다   
더 많은 댓 글
  
#  
re: Quartz 와 Spring 을 결합 할 때 Job 의 시작 시간 을 어떻게 동적 으로 업데이트 하 는 지 2008 - 03 - 31 21: 13 |
Robin's Java World
꾀꼬리
JobInitializationPlugin 이라는 플러그 인 말 입 니까?  
대답 하 다   
더 많은 댓 글
  
#  
re: Quartz 와 Spring 을 결합 할 때 Job 의 시작 시간 을 어떻게 동적 으로 업데이트 하 는 지 2008 - 03 - 31 22: 07 |
꾀꼬리
예, 바로 이것 입 니 다. quartz. properties 에서 설정 파일 이 수정 되 었 는 지 얼마나 설정 할 수 있 는 지 테스트 하고 새로운 내용 을 읽 고 실행 계획 을 조정 할 수 있 습 니 다.  
대답 하 다   
더 많은 댓 글
  
#  
re: Quartz 와 Spring 을 결합 할 때 Job 의 시작 시간 을 어떻게 동적 으로 업데이트 하 는 지 2008 - 04 - 01 14: 33 |
Robin's Java World
꾀꼬리
감사합니다!
그러나 일반인 들 은 Spring 을 사용 할 때 대부분 applicationContext 에서 정 의 를 내린다.
또한, 이 플러그 인 을 사용 할 때 quartz. properties 에서 설정 한 인 스 턴 스 가 있 는 지 모 르 겠 습 니 다.  
대답 하 다   
더 많은 댓 글
  
#  
re: Quartz 와 Spring 을 결합 할 때 Job 의 시작 시간 을 어떻게 동적 으로 업데이트 하 는 지 2008 - 04 - 01 19: 57 |
꾀꼬리
나 는 최근 에 《 Quartz Job Scheduling Framework 》 를 번역 하고 있 으 니, 흥미 가 있 으 면 와 서 볼 수 있다.
http://www.blogjava.net/Unmi/category/27619.html

좋은 웹페이지 즐겨찾기