7e31253e12822df423ea7ed818d58417df7fcdac.svn-base 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package xin.glue.scheduling;
  2. import java.util.Timer;
  3. import java.util.TimerTask;
  4. import java.util.Vector;
  5. import javax.servlet.ServletContextEvent;
  6. import javax.servlet.ServletContextListener;
  7. public class XinJobListener implements ServletContextListener {
  8. private final Vector vectors = new Vector(); // 定时器数组
  9. //private final int period = 3 * 60; // 轮询周期
  10. public XinJobListener()
  11. {
  12. }
  13. public void contextInitialized(ServletContextEvent event) {
  14. schedule(new XinParseTask("XinZipAction-service"), 3 * 24 * 60 * 60); //三天执行一次,删除部分表中7天前的数据
  15. schedule(new XinParseTask("XinHMResAction-service"), 30); // 30秒钟执行一次,解析接口表TBH06_L2_RECV_DATA数据
  16. schedule(new XinParseTask("XinG2ResAction-service"), 30); //40秒钟执行一次,解析接口表TBG06_L2_RECV_DATA数据
  17. schedule(new XinParseTask("XinLabResAction-service"), 30); //40秒钟执行一次,解析成分接口表TBG06_L2_CHEM_RESULT数据
  18. }
  19. public void contextDestroyed(ServletContextEvent event) {
  20. for (int i = 0, size = vectors.size(); i < size; i++) {
  21. Timer timer = (Timer) vectors.get(i);
  22. timer.cancel();
  23. }
  24. vectors.clear();
  25. }
  26. private void schedule(TimerTask task, long period) {
  27. Timer timer = new Timer();
  28. vectors.add(timer);
  29. timer.schedule(task, 10 * 1000, period * 1000);
  30. }
  31. }