1

私はクォーツスケジューラフレームワークを学んでおり、ベースとして定期的に印刷する「Hello World」から始めました。

これは私の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..

目的の出力が得られません。コンソールで実行しています。設定を行う必要がありますか? これで私を助けてください

4

2 に答える 2

1

scheduler.start()実行するジョブをスケジュールした後に配置するだけです-scheduler.scheduleJob...

更新: org.life.java によって修正されたままです。ステートメントの順序は大きな違いはありません。あなたの悩みの元はshutdown()召喚です。スケジューラの契約 [ javadoc ] は、明示的なシャットダウンコマンドが発行されない限り、実行し続けることです。コードからその行を削除すると、正常に機能します。

于 2010-12-29T08:45:02.927 に答える
1

私はそれをゼロから作成しましたが、うまく機能します.!!
良いアイデアが得られるように、コードをこれと比較し、catch で例外を記録することをお勧めします。

ジョブランナー

/*
 * 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());
    }
}
于 2010-12-29T09:10:10.047 に答える