亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

如何在Web應用中啟動后臺任務

2019-11-18 12:50:29
字體:
來源:轉載
供稿:網友

  摘要
  
  我們經常在Web應用中需要啟動一個自己寫的服務,本文的目的是給你提供一個解決方案。
  
  原理
  
  本方案的原理是寫一個實現了ServletContextListener接口的類,該類中有兩個方法:public void contextInitialized(ServletContextEvent sce),它是在應用啟動時調用;另一個方法是:public void contextDestroyed(ServletContextEvent sce),該方法是在應用結束時調用。把我們要啟動的后臺應用邏輯放在contextInitialized方法中實現;把釋放后臺應用占用資源的工作放在contextDestroyed來處理。但我們啟動的后臺任務經常是有要求的,比如時間,頻率等,我在這里使用了一個開源組件:quartz。
  
  步驟
  
  1.寫業務調用類:
  
  // DumbJob.java
  import org.quartz.*;
  import java.util.*;
  public class DumbJob implements Job {
  public DumbJob() {
  }
  public void execute(JobExecutionContext context)
  throws JobExecutionException
  {
  //在這里寫業務處理代碼。什么,你不知道?那你別問我!!:-<
  }
  }
  
  本類的主要功能是由quartz中調度類按照指定的規則進行調用執行必要的業務邏輯。
  
  2.寫調度類
  
  // TestShedule.java
  import org.quartz.*;
  import java.util.*;
  
  public class TestShedule{
  static SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
  static Scheduler sched;
  
  public static void run()throws Exception{
  sched = schedFact.getScheduler();  //獲取調度治理器
  JobDetail jobDetail = new JobDetail("myJob",
  sched.DEFAULT_GROUP,
  DumbJob.class);//創建工作
  CronTrigger trigger = new CronTrigger("myTrigger","test","0/10 * * * * ?");//創建觸發器
  sched.scheduleJob(jobDetail, trigger);  //添加到調度治理器中
  sched.start();//啟動調度治理器
  }
  
  public static void   stop()throws Exception{
  sched.shutdown();
  }
  }
  本類的目的是設置調用規則,在這里我用了“0/10 * * * * ?”表示每10秒鐘就執行一次,有關表達式的說明請參閱quartz的api文檔。
  
  3.編寫服務啟動類:
  
  //ServiceLoader.java
  import javax.servlet.ServletContextEvent;
  import javax.servlet.ServletContextListener;
  
  public class ServiceLoader implements ServletContextListener {
  public void contextInitialized(ServletContextEvent sce) {
  try{
  TestShedule.run();
  }catch(Exception ex){
  System.out.PRintln(ex.getMessage());
  }
  }
  
  public void contextDestroyed(ServletContextEvent sce) {
  try{
  TestShedule.stop();
  }catch(Exception ex){
  System.out.println(ex.getMessage());
  }
  }
  }
  在contextInitialized中調用TestShedule.run()啟動后臺任務;在contextDestroyed中調用TestShedule.stop()停止后臺任務。
  
  4.部署服務啟動類
  
  在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 id="WebApp">
  <display-name>root</display-name>
  <!--下邊的listener部分就是配置信息-->
  <listener>
  <listener-class>ServiceLoader </listener-class>
  </listener>
  <welcome-file-list>
  <welcome-file>index.Html</welcome-file>
  </welcome-file-list>
  </web-app>
  
  5.啟動web服務即可。
  
  總結
  
  其實實現這個功能的方法很多,我在這里是應用了ServletContextListener接口和開源api quartz,希望能對你的開發有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
九色91av视频| 国产亚洲人成网站在线观看| 国产成人精品视频在线观看| 在线播放日韩av| 中文字幕亚洲激情| 成人欧美一区二区三区黑人孕妇| 国产999在线| 国产欧美精品日韩| 欧美精品在线网站| 亚洲性av在线| 欧美性猛交xxxx黑人| 欧美裸体xxxx极品少妇软件| 欧美另类极品videosbestfree| 欧洲亚洲免费视频| 97av视频在线| 日韩va亚洲va欧洲va国产| 日韩专区中文字幕| 美日韩在线视频| 久久久久久久久91| 欧美一区二区.| 国产精品成人久久久久| 日本中文字幕久久看| 在线免费观看羞羞视频一区二区| 久久久女女女女999久久| 欧美一级淫片丝袜脚交| 国产一区二区三区视频| 91av视频导航| 国产精品久久9| 在线观看日韩专区| 正在播放亚洲1区| 欧美激情一区二区三区高清视频| 国产在线视频91| 国产精品草莓在线免费观看| 欧美成人精品一区| 成人黄色大片在线免费观看| 国产日韩精品一区二区| 欧美高清在线播放| 国产日本欧美一区二区三区在线| 亚洲欧美日韩图片| 91免费福利视频| 国产精品青草久久久久福利99| 亚洲免费精彩视频| 久久久精品免费| 久久久久久久久久久亚洲| 青青草原成人在线视频| 92看片淫黄大片看国产片| 国产精品电影在线观看| 亚洲iv一区二区三区| 中国china体内裑精亚洲片| 日韩女优人人人人射在线视频| 日韩欧美在线中文字幕| 久久久久久午夜| 亚洲男人天天操| 亚洲激情国产精品| 欧美人与物videos| 欧美老少做受xxxx高潮| 欧美日韩福利在线观看| 日韩欧美高清视频| 97香蕉久久夜色精品国产| 久久精品国产欧美激情| 久久伊人精品一区二区三区| 亚洲午夜久久久影院| 91香蕉亚洲精品| 亚洲视频欧美视频| 欧美午夜xxx| 国产成人精品日本亚洲| 欧美亚洲国产成人精品| 国产精品老女人精品视频| 91亚洲永久免费精品| 国产成人精品午夜| 中文字幕国产日韩| 插插插亚洲综合网| 97久久精品国产| 国产精品电影久久久久电影网| 久久精品人人爽| 日本精品一区二区三区在线播放视频| 亚洲欧美中文另类| 久久中文字幕一区| 欧美性猛交丰臀xxxxx网站| 日韩精品高清在线观看| 日韩美女主播视频| 欧美香蕉大胸在线视频观看| 精品国产一区二区三区久久久| 国产精品直播网红| 在线观看国产精品91| 亚洲毛片在线观看.| 国产日产久久高清欧美一区| 国产精品亚洲第一区| 久久亚洲精品毛片| 久久色免费在线视频| 欧美一区二区三区图| 国产精品一区电影| 日本一区二区不卡| 热久久美女精品天天吊色| 国产精品视频不卡| 日韩精品在线视频观看| 91中文在线视频| 国产精品第100页| 粗暴蹂躏中文一区二区三区| 超碰97人人做人人爱少妇| 亚洲女成人图区| 国产日韩av在线| 欧美黄色小视频| 精品中文字幕久久久久久| 亚洲精品国产精品自产a区红杏吧| 欧美日韩国产成人高清视频| 亚洲一区二区三区777| 久久网福利资源网站| 亚洲成人久久久| 国产精品99久久久久久人| 欧美做受高潮1| 欧美—级高清免费播放| 亚洲高清免费观看高清完整版| 国产精品精品国产| 黑人与娇小精品av专区| 一区二区三区日韩在线| 狠狠久久五月精品中文字幕| 国产香蕉97碰碰久久人人| 亚洲国产一区自拍| 久久久久久国产精品| 亚洲国产一区二区三区在线观看| 91免费在线视频网站| 久久频这里精品99香蕉| 在线视频国产日韩| 国产日本欧美一区二区三区| 国产视频福利一区| 久久久日本电影| 久久久噜久噜久久综合| 亚洲天堂av综合网| 国产一区二中文字幕在线看| 亚洲精品日韩激情在线电影| 欧美性色xo影院| 午夜精品视频在线| 国产精品欧美日韩| 午夜精品理论片| 亚洲欧洲激情在线| 亚洲国语精品自产拍在线观看| 欧美成人中文字幕在线| 久久人人97超碰精品888| 日韩av网址在线观看| 日本国产欧美一区二区三区| 久久人人97超碰精品888| 亚洲成人免费在线视频| 成人精品一区二区三区电影免费| 国产极品jizzhd欧美| www.国产精品一二区| 国产一区二区三区中文| 亚洲成人黄色网| 欧美成年人视频网站| 日韩成人在线观看| 国产一区二区三区视频| 国产一区欧美二区三区| 欧美日韩亚洲一区二区三区| 精品久久久久久中文字幕| 在线看日韩av| 91精品国产综合久久香蕉| 色中色综合影院手机版在线观看| 欧美在线免费看| 在线观看久久久久久| 一区二区亚洲欧洲国产日韩| 91久久中文字幕| 欧美日韩综合视频网址| 日韩美女写真福利在线观看| 91精品综合久久久久久五月天|