Bạn có thể sử dụng Quartz api cho mục đích này.
Quartz đang lên lịch API dễ sử dụng và thực hiện lập lịch biểu.
Bạn có thể sử dụng trình kích hoạt đơn giản với mili giây và công việc lặp lại và đặt khoảng lặp lại. Trình kích hoạt trước CronTrigger hoạt động chính xác cùng một cron unix. Trong CronTrigger, chúng tôi có thể xác định, ngày được chọn, ví dụ: Thứ tư, thứ sáu hàng tuần, hàng tháng và hàng năm.
Đây là một mẫu tutorial giải thích làm thế nào để sử dụng nó
thạch anh với Simple Servlet
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 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 ");
}
}