| 12345678910111213141516171819202122232425262728293031323334353637 |
- package xin.glue.scheduling;
- import java.util.Timer;
- import java.util.TimerTask;
- import java.util.Vector;
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- public class XinJobListener implements ServletContextListener {
- private final Vector vectors = new Vector(); // 定时器数组
- //private final int period = 3 * 60; // 轮询周期
- public XinJobListener()
- {
- }
-
- public void contextInitialized(ServletContextEvent event) {
- schedule(new XinParseTask("XinZipAction-service"), 3 * 24 * 60 * 60); //三天执行一次,删除部分表中7天前的数据
- schedule(new XinParseTask("XinHMResAction-service"), 30); // 30秒钟执行一次,解析接口表TBH06_L2_RECV_DATA数据
- schedule(new XinParseTask("XinG2ResAction-service"), 30); //40秒钟执行一次,解析接口表TBG06_L2_RECV_DATA数据
- schedule(new XinParseTask("XinLabResAction-service"), 30); //40秒钟执行一次,解析成分接口表TBG06_L2_CHEM_RESULT数据
- }
- public void contextDestroyed(ServletContextEvent event) {
- for (int i = 0, size = vectors.size(); i < size; i++) {
- Timer timer = (Timer) vectors.get(i);
- timer.cancel();
- }
- vectors.clear();
- }
- private void schedule(TimerTask task, long period) {
- Timer timer = new Timer();
- vectors.add(timer);
- timer.schedule(task, 10 * 1000, period * 1000);
- }
- }
|