使用石英与石英插入石英插件

时间:2012-03-16 13:56:51

标签: grails quartz-scheduler

我正在尝试使用quartz来安排grails中的作业而不使用插件。 这是代码:

1 - RunMeTask.java

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

2 - resources.groovy(在conf / spring下)

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:class org.springframework.scheduling.quartz.SimpleTriggerBean将接口org.quartz.SimpleTrigger作为超类(使用--stacktrace来查看完整的迹线)

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

好吧,我明白了。当我想到它时,并没有那么难。它的好处就像你在java中做的一样简单,没有插件可能会或可能不会在grails某些版本或使用插件引起的任何麻烦上工作

问题中的代码有1处变化:

  1. RunMeTask.java(也可以是RunMeTask.groovy)必须实现runnable等等 它看起来像这样:

    包tt;

    import java.io.File;

    import java.io.IOException;

    import java.util.Random;

    公共类RunMeTask实现Runnable {

    static Random r = new Random();

    public void printMe()抛出IOException {

    文件f =新文件(“c:\ ofer.txt”+ r.nextInt());

    f.createNewFile();

    的System.out.println( “FFF”);

    }

    public void run(){

    尝试{

    printMe();

    } catch(IOException e){

    // TODO自动生成的捕获块

    e.printStackTrace();

    }

    }

    }
    
  2. 一个有趣的事情是“fff”的println只发生了2次,但每隔5秒创建一个新文件。

    好的,现在它在c目录中每5秒创建一个新文件。 没有插件也没有麻烦。如果有人知道为什么System.out.println(“fff”);只有2次,我很乐意知道。

    感谢