-3
請幫我解決這個查詢,我將每天應用在Eclipse中特定的時間自動發送信息,但我很困惑所以給我的建議如何在struts eclipse中使用線程或cronjob在特定時間自動發送每日消息?
請幫我解決這個查詢,我將每天應用在Eclipse中特定的時間自動發送信息,但我很困惑所以給我的建議如何在struts eclipse中使用線程或cronjob在特定時間自動發送每日消息?
使用Quartz 2.1.5 API
<!--Maven Dependency-->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.1.5</version>
</dependency>'
爲了整合Struts 2和Quartz 2調度程序,我們必須使用標準的Servlet監聽器來將Quartz API鏈接到Struts。 使用下面的ServletContextListener接口。
QuartzListener.java
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
/**
* This class is used for executing quartz job
* using CronTrigger(Quartz 2.1.5).
* @author Prabhakar Kumar
*/
public class QuartzListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("Destroyed is called.");
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
try{
//Set job details.
JobDetail job = JobBuilder.newJob(HelloJob.class)
.withIdentity("helloJob", "group1").build();
//Set the scheduler timings.
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("cronTrigger", "group1")
.withSchedule(CronScheduleBuilder
.cronSchedule("0/10 * * * * ?")).build();
//"0/10 * * * * ?"--->here you can put date time day of
//week month just read more about Quartz API
//Execute the job.
Scheduler scheduler =
new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
}catch(Exception e){
e.printStackTrace();
}
}
}
你的調度方法樣子
HelloJob.java
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* This class defines a quartz job.
* @author Prabhakar Kumar
*/
public class HelloJob implements Job{
public void execute(JobExecutionContext context)
throws JobExecutionException {
//Here is your code in this method(Your Logic)
System.out.println("Hello World.");
}
}
的web.xml看起來像
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng. filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class> com.javawithease.business.QuartzListener </listener-class> </listener> </web-app>
使用調度 –