2010-04-06 73 views
1

我想裝配起來吉斯(渣),Quartz調度和iBatis(iBaGuice)執行以下操作:吉斯+石英+ iBatis的

  1. 使用啓動命令行實用程序,掃描儀main()
  2. 定期對文件的掃描目錄(作爲參數提供)含有格式化的輸出(XML或YAML)
  3. 當檢測文件,解析並輸出結果到數據庫

問題:

  1. 我用this example來連接Guice和Quartz。但是我錯過了,我要問的意見,但職位是有些過時一些重要的細節,所以我在這裏引用它也:
  1. 這不是明顯的如何建立的調度。我在哪裏以及如何連線Trigger(我可以使用Trigger#makeMinutelyTrigger)?
  2. 我真的只有一種類型的工作,我會執行,我明白JobFactory#newJob中的細節來自TriggerFiredBundle參數,但是在哪裏/如何連線?我在哪裏/如何創建或連接具體的Job?

P.S.通過創建和配線ScheduleProvider,我得到了一點點進一步的改進。現在我遇到了如何在下面的代碼片段中實際安排Job。它接縫我JobFactory#newJob方法不會被調用

public class CollectorServiceImpl implements CollectorService { 
Scheduler scheduler; 

/** 
* @throws SchedulerException 
*/ 
@Inject 
public CollectorServiceImpl(final SchedulerFactory factory, final GuiceJobFactory jobFactory) 
     throws SchedulerException { 
    scheduler = factory.getScheduler(); 
    scheduler.setJobFactory(jobFactory); 
} 

/** 
* @throws SchedulerException 
* @see teradata.quantum.reporting.collector.service.CollectorService#start() 
*/ 
@Override 
public void start() throws SchedulerException { 
    Trigger trigger = TriggerUtils.makeMinutelyTrigger("MIN_TRIGGER"); 
    scheduler.scheduleJob(trigger); // this fails trigger validation since no job name is provided 
    scheduler.start(); 
} 

}

回答

0

你真的需要調度,或只在固定時間間隔重複任務的執行? 如果後面的話,看一看java中構建的ExecutorService,特別是ScheduledThreadPoolExecutor。節省了整個框架的東西很簡單:)

+0

getScheduler().scheduleJob(new JobDetail("myFooJob", null, FooJob.class), TriggerUtils.makeMinutelyTrigger("MIN_TRIGGER")); 

完整的答案&演示代碼這是一個第一步。我真的需要在不久的將來使用cron類型的調度程序,並且Quartz符合賬單 – Bostone 2010-04-06 19:39:31