5

シードパラメータとして開始URLを使用してクロールするWebクローラーを開発しました。可能であれば、ユーザーがジョブの観点からこのタスクをスケジュールできるようにしたいと思います。

現在、とを使用Spring 3.1.2してHibernateいます。cronJobパラメーターを受け取るフロントエンドをユーザーに提供する必要があり、それに基づいてクローラーを実行します。バネを使ってできますか?

少し読んだのですQuartzが、春にスケジューラーを実装する方法を完全に理解するために、SOや他のWebサイトの記事がまったく明確でないか、完全ではありません。

私はそれに3つのコンポーネントがあることを基本的に知っています

  1. SchedulerFacotry
  2. 引き金
  3. ジョブ(実行するサービス)

誰かが私を正しい方向に導いてくれることを願っています。

4

1 に答える 1

9

Quartzスケジューラーは、この仕事にぴったりのツールです。何らかの理由で、ほとんどすべてのチュートリアルは、XMLでの起動時のジョブの定義に焦点を当てていますが、Quartzは実行時にジョブを完全に(再|非)スケジューリングできます。

Springを利用してQuartzSchedulerを起動することはできますし、そうすべきですが、コードから直接操作することもできます。ドキュメントからの簡単な例を次に示します。

JobDetail job = newJob(SimpleJob.class)
    .withIdentity("job1", "group1")
    .build();

CronTrigger trigger = newTrigger()
    .withIdentity("trigger1", "group1")
    .withSchedule(cronSchedule("0/20 * * * * ?"))
    .build();

scheduler.scheduleJob(job, trigger);

ここでは、ジョブ(実行するJavaコードの一部)、トリガー(実行するタイミング、ユーザーは有効なCRON式を指定できます)を定義し、スケジュールしてすべてをラップします。スケジューラインスタンスはSpringによって注入できます。Springは適切なシャットダウンも処理します。

于 2012-08-28T15:59:16.257 に答える