3

承認のために送信されたリクエストや、定期的にリマインダー(承認者と言う)などのタスクが完了した後に電子メール通知を送信する単純なJavaWebアプリを開発したいと思います。QuartzSchedulerを使用してこれを実行したいと思います。私は初心者なので、誰かが私がこれを始めるのを手伝ってくれるでしょうか。

前もって感謝します。

JARファイル:quartz-1.8.0をWEB-INF\libおよびcommon\libにコピーして貼り付けましたが、Javaファイルのインポート中に見つかりません。:(

4

1 に答える 1

7

web-app init で開始するサーブレットを作成します。

<web-app>
    ...
    <servlet>
     <servlet-name>Emailer</servlet-name>
     <servlet-class>my.servlet.Emailer</servlet-class>
     <load-on-startup>1</load-on-startup>
    </servlet>
    ...
</web-app>

init()サーブレットでスケジューラーを構成します (以下の例では 10 分ごとにトリガーされます)

SchedulerFactory schFact = new org.quartz.impl.StdSchedulerFactory();
Scheduler sched = schFact.getScheduler();
JobDetail job = new JobDetail("job1", "group1", EmailerJob.class);
CronTrigger trigger = new CronTrigger("trigger1", "group1", "job1", "group1", "* 0/10 * * * ?");
sched.addJob(job, true);
sched.start();

Quartz の Job インターフェースを実装する Class を記述します。

EmailerJob implement Job{
        public void execute(JobExecutionContext arg0) throws JobExecutionException {
        //Code to send mails goes here
    }

}

PS上記のコードはテストされていませんが、何をすべきかについてはかなりのアイデアが得られます。

@jmort253 が正しく指摘したように、Quartz チュートリアルは最高のリソースであり、私の記憶が正しければ、スケジュールされたメーラーの例がそのどこかで実行されています。


アップデート

わかりました、Google が問題を解決します。そして、これが誰でもあなたに与えることができる最も詳細な解決策です! Java – Quartz API を使用した Web アプリケーションでのジョブスケジューリング

Edit#1サーブレットの代わりに使用ContextListenerして、Quartz スケジューラを開始できます。


更新 1

@jhouseが正しく述べたように、Jobメーリングを処理する独自のものを書く代わりに、Quartzの定義済みSendMailJobクラスに同じことをさせることができます。ありがとう@jhouse。

于 2011-02-05T07:48:42.783 に答える