私は、ある一定の間隔でn個のタスクを実行する必要があります。私はタスクを実行するのに必要な値を含むデータベースを持っています - javaと私はWindowsプラットフォーム上でApache Webサーバーを設定しています。スケジュールされた時刻にタスクを実行するjava、apache
誰かがこのタスクを達成するために私を導くことができますか?
私は、ある一定の間隔でn個のタスクを実行する必要があります。私はタスクを実行するのに必要な値を含むデータベースを持っています - javaと私はWindowsプラットフォーム上でApache Webサーバーを設定しています。スケジュールされた時刻にタスクを実行するjava、apache
誰かがこのタスクを達成するために私を導くことができますか?
Quartz apiをこの用途に使用できます。
Quartzは使いやすいスケジューリングAPIで、スケジューリングの初期化を行います。
millisecondとrepeatのジョブで簡単なトリガーを使用し、繰り返し間隔を設定できます。 Advance Trigger CronTriggerは全く同じunix cronで動作します。 CronTriggerでは、選択日を定義できます。毎週水曜日、金曜日、毎月、毎年。ここで
は、単純なサーブレットweb.xmlの
<web-app>
<display-name>timer</display-name>
<servlet>
<servlet-name>InitializeServlet</servlet-name>
<servlet-class>com.cron.InitializeServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>
InitializeServlet.java
package com.cron;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
public class InitializeServlet extends HttpServlet {
public void init() throws ServletException {
try {
System.out.println("Initializing NewsLetter PlugIn");
CronScheluder objPlugin = new CronScheluder();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
CronScheludeとそれに
クォーツを使用する方法について説明したサンプルtutorialですあなたが経由でこれを行うことができますいずれかr.java
package com.cron;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
public class CronScheluder {
public CronScheluder() throws Exception {
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sche = sf.getScheduler();
sche.start();
JobDetail jDetail = new JobDetail("Newsletter", "NJob", MyJob.class);
//"0 0 12 * * ?" Fire at 12pm (noon) every day
//"0/2 * * * * ?" Fire at every 2 seconds every day
CronTrigger crTrigger = new CronTrigger("cronTrigger", "NJob", "0/2 * * * * ?");
sche.scheduleJob(jDetail, crTrigger);
}
}
MyJob.java
package com.cron;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class MyJob implements Job {
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("Cron executing ");
}
}
:
また、apacheはあなたの要件とは関係がないようです。