做物联网需要有定时功能。比如在早上六点定时闹钟,打开窗帘,这里选择quartz1.8.4来做定时。
首先在web.xml配置下:要引进去相关的包。
<!-- quartz的任务调度begin --><servlet><servlet-name>
QuartzInitializer
</servlet-name><servlet-class>
org.quartz.ee.servlet.QuartzInitializerServlet
</servlet-class><load-on-startup>
1
</load-on-startup></servlet>
<!-- quartz的任务调度end -->
<!--同时在web.xml中需要另外配置一个初始化的servlet类-->
<!-- 系统初始化 -->
<servlet>
<servlet-name>XXXX</servlet-name>
<servlet-class>com.XXXX.XXXServlet</servlet-class>
<load-on-startup>1</load-on-startup></servlet>
<servlet-mapping>
<servlet-name>XXXX</servlet-name>
<url-pattern>/XXXX</url-pattern><
/servlet-mapping>
第二步,写一个servlet来启动定时器
import java.util.Date;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.joda.time.DateTime;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.TriggerUtils;
import org.quartz.ee.servlet.QuartzInitializerServlet;
import org.quartz.impl.StdSchedulerFactory;
import socket.SoundJob;
public class HMInitServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException {
//启动任务调度
StdSchedulerFactory factory = new StdSchedulerFactory();;
Scheduler scheduler = null ;
try {
scheduler = factory.getScheduler();
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JobDetail job = new JobDetail("job1","group1",SoundJob.class);
Trigger trigger = TriggerUtils.makeDailyTrigger(9, 30);//每天九点半启动
// Trigger trigger= TriggerUtils.makeSecondlyTrigger(15); //每十五秒启动
trigger.setStartTime(new Date()); // begin immediately
trigger.setName("mytrigger");
trigger.setStartTime(new Date());
try {
scheduler.scheduleJob(job, trigger);
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
第三,编写一个任务,定时执行这个job
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.ConstString.ConstChar;
public class SoundJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub
client a = new client();
a.connect();
a.SendMessage(ConstChar.r28);
a.getMessage();
//a.SendMessage(ConstChar.r10);
// a.getMessage();
// a.SendMessage(ConstChar.r9);
// a.getMessage();
a.close();
}
}