2012-03-16 5 views
1

나는 quartz를 사용하여 플러그인을 사용하지 않고 grails에서 작업을 스케쥴하려고합니다. 이것은 코드 :석영을 grails에서 quartz 플러그인을 사용하여 사용하기

1 - RunMeTask.java

package tt; 
public class RunMeTask { 
    public void printMe() { 
     System.out.println("Run Me ~"); 
    } 
} 

2 - resources.groovy (conf의 아래/스프링)

import org.springframework.scheduling.quartz.JobDetailFactoryBean; 
import org.springframework.scheduling.quartz.SchedulerFactoryBean; 
import org.springframework.scheduling.quartz.SimpleTriggerBean; 
import tt.RunMeTask 

beans = { 
    runMeTask(RunMeTask){} 

    runMeJob(JobDetailFactoryBean) { 
     targetObject = ref('runMeTask') 
     targetMethod = "printMe" 
    } 

    simpleTrigger(SimpleTriggerBean){ 
     jobDetail = ref('runMeJob') 
     repeatInterval = "5000" 
     startpDelay = "1000" 
    } 

    schedulerFactoryBean(SchedulerFactoryBean){ 
     jobDetails = [ref('runMeJob')] 
     triggers = [ref('simpleTrigger')] 
    } 

} 

제가 다음 예외 얻을 : 오류 치명적인 오류 컴파일 중 org.apache.tools.ant.BuildException : java.lang.IncompatibleClassChangeError : 클래스 org.springframework.scheduling.quartz.SimpleTriggerBean 인터페이스가 org.quartz.SimpleTrigger 슈퍼 클래스로 존재 함 (전체 추적을 보려면 --stacktrace 사용)

아무도 도와 줄 수 있습니까?

답변

0

좋습니다. 알아낼 수 있습니다. 내가 그것에 대해 생각할 때 그렇게 힘들지 않았다. 플러그인과 플러그인을 사용하여 발생할 수있는 문제 또는 특정 버전의 grails에서 작동하지 않을 수도있는 플러그인을 Java 및 플러그인에서 수행하는 것만큼이나 간단하다. .

  1. RunMeTask.java (이 또한 RunMeTask.groovy 될 수 있습니다) 실행 가능한 구현 등 은 다음과 같이해야합니다 :

    패키지 질문의 코드에서 한 변화가

    tt;

    import java.io.File;

    import java.io.IOException;

    import java.util.Random;

    RunMeTask Public 클래스가 구현 된 Runnable {

    정적 랜덤 R = 새로운 랜덤();

    공개 무효 printMe는() {IOException이

    파일 F = 새 파일을 발생 ("C : \ ofer.txt"+ r.nextInt());

    f.createNewFile();

    System.out.println ("fff");

    }

    공공 무효 실행() {

    시도 {

    printMe();

    } 캐치 (IOException이 전자) {

    // TODO 자동 생성 된 catch 블록

    전자.printStackTrace();

    }

    }

    } 
    

하나 재미있는 점은 "FFF"의 println 메소드 만 2 번 occures 있지만, 5 초마다 예상대로 새 파일이 생성됩니다

.

ok 이제는 새 파일이 5 초마다 c 디렉토리에 만들어집니다. 플러그인이없고 번거 로움이 없습니다. 누구든지 System.out.println ("fff"); 단지 2 번만 나는 행복하게 알게 될 것이다.

감사합니다.

관련 문제