Guice (Java)、Quartz スケジューラ、および iBatis ( iBaGuice ) を結び付けて、次のことを実行しようとしています。
- を使用してコマンド ライン ユーティリティ スキャナーを起動します
main()
- フォーマットされた出力 (XML または YAML) を含むファイルのディレクトリ (引数として指定) を定期的にスキャンします
- ファイルが検出されると、解析して結果をデータベースに出力します
問題点:
- この例を使用して、Guice と Quartz を接続しました。ただし、コメントで質問している重要な詳細がいくつか欠けていますが、投稿はやや古いため、ここでも引用しています。
- スケジューラの設定方法は明らかではありません。をどこにどのように配線しますか
Trigger
(使用できますTrigger#makeMinutelyTrigger
)?- 私が実際に実行するジョブのタイプは 1 つだけです。JobFactory#newJob の詳細は
TriggerFiredBundle
パラメーターから来ていることは理解していますが、どこにどのように配線すればよいですか? そして、具体的なジョブをどこで/どのように作成または配線しますか?
PSScheduleProviderを作成して配線することで、もう少し先に進みました。今、この次のスニペットでジョブを実際にスケジュールする方法に行き詰まっています。私の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();
}
}