2010-12-29 12 views
1

私はクォーツスケジューラフレームワークを学んでいます。私は定期的な間隔で "Hello World" thatsでプリントを開始しました。シンプルな石英スケジューラを実行しているときの問題

これは私のSampleScheduler

ここ
public class SampleScheduler { 
public static void main(String arfs[]) { 
    try { 
     Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); 
     scheduler.start(); 
     System.out.println("Scheduler Started..."); 

     JobDetail job = new JobDetail("job1","group1",SampleJobInter.class); 
     Trigger trigger = new SimpleTrigger("trigger1",Scheduler.DEFAULT_GROUP,new Date(),null,SimpleTrigger.REPEAT_INDEFINITELY,60L*1000L); 
     scheduler.scheduleJob(job, trigger); 
     scheduler.shutdown(); 
     System.out.println("Scheduler Stopped.."); 
    } catch(SchedulerException e) { 

    } 

} 
} 

ですが、私のSampleJobInter.class

public class SampleJobInter implements Job { 

SampleJobInter(){} 
@Override 
public void execute(JobExecutionContext arg0) throws JobExecutionException { 
    // TODO Auto-generated method stub 
    System.out.println("Hello World at "+new Date()); 
} 

} 

出力を取得していますのは、私が所望の出力を得ていないのです

Scheduler Started... 
Scheduler Stopped.. 

です。私はコンソールでそれを実行しています。私は設定や何をする必要がありますか?私はorg.life.javaによって修正スタンド:scheduler.scheduleJob...

UPDATEを - あなたが実行するジョブをスケジュールした後、この

答えて

1

で私を助けてくださいだけscheduler.start()を置きます。ステートメントの順番は大きな違いはありません。問題の原因はshutdown()です。スケジューラ契約[javadoc]は、明示的なシャットダウンコマンドが発行されていない限り、実行を継続します。コードからその行を削除すると、正常に動作します。

+0

私はそれはそうと同じことをしました。詳細にお聞かせください。コードスニペットの – i2ijeya

+0

と同じことをしたとは思いません。 'scheduler.start()'文は 'scheduler'インスタンスを取得した直後に取得しますが、その後に' scheduler.scheduleJob(job、trigger) 'ジョブをスケジュールします。 – anirvan

+0

その問題ではない –

1

ゼロから作成してうまく動作します!!
私はこのコードとあなたのコードを比較することをお勧めします。

JobRunner

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package org.life.java.so.questions; 

/** 
* 
* @author Jigar 
*/ 
import java.util.Date; 
import org.quartz.JobDetail; 
import org.quartz.Scheduler; 
import org.quartz.SchedulerFactory; 
import org.quartz.SimpleTrigger; 
import org.quartz.impl.StdSchedulerFactory; 



public class HelloSchedule { 

    public HelloSchedule() throws Exception { 
     SchedulerFactory sf = new StdSchedulerFactory(); 
     Scheduler sched = sf.getScheduler(); 
     sched.start(); 
     JobDetail jd = new JobDetail("myjob", sched.DEFAULT_GROUP, SampleJobInter.class); 
     SimpleTrigger st = new SimpleTrigger("mytrigger", sched.DEFAULT_GROUP, new Date(), 
       null, SimpleTrigger.REPEAT_INDEFINITELY, 100L); 
     sched.scheduleJob(jd, st); 
    } 

    public static void main(String args[]) { 
     try { 
      new HelloSchedule(); 
     } catch (Exception e) { 
     } 
    } 
} 

仕事

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package org.life.java.so.questions; 

import java.util.Date; 
import org.quartz.Job; 
import org.quartz.JobExecutionContext; 
import org.quartz.JobExecutionException; 

/** 
* 
* @author Jigar 
*/ 
public class SampleJobInter implements Job { 

    public SampleJobInter() { 
    } 

    public void execute(JobExecutionContext arg0) throws JobExecutionException { 
     System.out.println("Hello World at " + new Date()); 
    } 
} 
+0

+1。ありがとう。そのうまくいきました。私は前のコードをデバッグして例外は発生しません。私はそれがうまくいくかどうかわかりません。違いが何を作ったのか知ってください。 – i2ijeya

+0

差異チェックのインポートと他のものを把握してみてください –

+0

これは 'shutdown'メソッドです。もしあなたがそれを置くと、コードは実行されません。そうしなければ、それは走ります。 – anirvan

関連する問題