[英]using quartz with out the quartz plugin in grails
我正在嘗試使用石英在不使用插件的情況下計划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接口作為超類(使用- -stacktrace查看完整跟蹤)
有人可以幫忙嗎?
好吧,我知道了。 當我考慮它的時候並不難。關於它的好處就像您在Java中一樣簡單,並且沒有可能在某些版本上運行或無法運行的插件,或者某些版本或使用插件可能導致的任何麻煩。
該問題的代碼有1處更改:
RunMeTask.java(也可以是RunMeTask.groovy)必須實現可運行,因此看起來像這樣:
包tt;
導入java.io.File;
導入java.io.IOException;
導入java.util.Random;
公共類RunMeTask實現Runnable {
靜態隨機數r =新的Random();
公共無效printMe()引發IOException {
文件f =新文件(“ 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次,我很高興知道。
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.