我正在尝试使用 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:类org.springframework.scheduling.quartz.SimpleTriggerBean具有org.quartz.SimpleTrigger接口(interface)作为父类(super class)(使用--stacktrace查看完整内容跟踪)
有人可以帮忙吗?
最佳答案
好吧,我知道了。当我考虑它的时候并不难。关于它的好处就像您在Java中所做的那样简单,并且没有可能在某些版本上运行或无法运行的插件,或者某些版本或使用插件可能导致的任何麻烦。
该问题的代码有1处更改:
它看起来像这样:
包tt;
导入java.io.File;
导入java.io.IOException;
导入java.util.Random;
公共(public)类RunMeTask实现了Runnable {
静态随机数r =新的Random();
公共(public)无效printMe()引发IOException {
文件f =新File(“c:\ ofer.txt” + r.nextInt());
f.createNewFile();
System.out.println(“fff”);
}
public void run(){
尝试{
printMe();
} catch(IOException e){
// TODO自动生成的catch块
e.printStackTrace();
}
}
}
有趣的是,“fff”的println仅出现2次,但是每5秒按预期创建一个新文件。
好的,这样就可以了,现在每5秒在您的c目录中创建一个新文件。
没有插件,没有麻烦。如果有人知道为什么System.out.println(“fff”);只会发生2次,我很高兴知道。
谢谢
关于grails - 在没有grails的 quartz 插件的情况下使用 quartz ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9738569/