色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Quartz在Web應用中單獨使用

jf_78858299 ? 來源:SpringBoot ? 作者:林祥纖 ? 2023-04-12 10:55 ? 次閱讀

Quartz也常用在Web應用中,常見的是交由Spring托管的形式,但這里并非介紹這個。這里介紹Quartz在Web應用中單獨使用。我們看下本章的大綱:

(1)大體思路說明;

(2)新建一個Web Project;

(3)創建一個Job;

(4)創建一個ApplicationContextListener;

(5)常用的Cron Schedule;

接下來看下具體的內容:

(1)大體思路說明;

一般來說,Web應用啟動時,應注冊已經確定的定時任務;一些動態的、未確定觸發時間的定時任務,后續可通過靜態的Scheduler注冊。

所以我們創建一個Web項目,在ServerContextListener初始化的時候,添加我們的定時定時任務調度器,在銷毀的時候,關閉任務調度器。

(2)新建一個Web Project;

新建一個web maven project。

在pom.xml文件中添加依賴:

<groupId>org.quartz-scheduler<span class="hljs-name"groupId>

        <artifactId>quartz<span class="hljs-name"artifactId>

        <version>2.2.3<span class="hljs-name"version>

javax.servlet

servlet-api

3.1-b02

(3)創建一個Job;

創建一個實現Job類的Class取名為HelloJob,代碼如下:

package com.kfit.job;

import java.util.Date;

import org.quartz.Job;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

/**

  • 任務類.
  • @author Angel --守護天使
  • @version v.0.1
  • @date 2017年4月21日

*/

**public **class HelloJob implements Job{

**public ****void** execute(JobExecutionContext context) **throws **JobExecutionException {

    // 執行響應的任務.

   System. ***out*** .println("HelloJob.execute,"+**new** Date());

  

}

}

(4)創建一個ApplicationContextListener;

新建一個實現ServletContextListener的類ApplicationContextListener,代碼如下:

package com.kfit.job;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

import javax.servlet.annotation.WebListener;

import org.quartz.JobBuilder;

import org.quartz.JobDetail;

import org.quartz.Scheduler;

import org.quartz.SchedulerException;

import org.quartz.SimpleScheduleBuilder;

import org.quartz.Trigger;

import org.quartz.TriggerBuilder;

import org.quartz.impl.StdSchedulerFactory;

@WebListener

**public **class ApplicationContextListener implements ServletContextListener{

**private** Scheduler scheduler =  **null** ;



**public ****void** contextInitialized(ServletContextEvent arg0) {

   **try** {

       /*

        *在 Quartz 中, scheduler 由 scheduler 工廠創建:DirectSchedulerFactory 或者 StdSchedulerFactory。第二種工廠 StdSchedulerFactory 使用較多,

        *因為 DirectSchedulerFactory 使用起來不夠方便,需要作許多詳細的手工編碼設置。

        */

       // 獲取Scheduler實例

       scheduler = StdSchedulerFactory. *getDefaultScheduler* ();

       scheduler.start();

       System. ***out*** .println("scheduler.start");

       System. ***out*** .println(scheduler.getSchedulerName());

      

       //具體任務.

       JobDetail jobDetail = JobBuilder. *newJob* (HelloJob. **class** ).withIdentity("job1","group1").build();

      

       //觸發時間點. (每5秒執行1次.)

       SimpleScheduleBuilder simpleScheduleBuilder =SimpleScheduleBuilder. *simpleSchedule* ().withIntervalInSeconds(5).repeatForever();

       Trigger trigger = TriggerBuilder. *newTrigger* ().withIdentity("trigger1","group1").startNow().withSchedule(simpleScheduleBuilder).build();

       // 交由Scheduler安排觸發

       scheduler.scheduleJob(jobDetail,trigger);

   } **catch** (SchedulerException e) {

       e.printStackTrace();

   }

}



**public ****void** contextDestroyed(ServletContextEvent arg0) {

   **try** {

       scheduler.shutdown();

   } **catch** (SchedulerException e) {

       e.printStackTrace();

   }//關閉定時任務調度器.

}

}

(5)常用的Cron Schedule;

相對于其他方式定義定時任務的觸發時間,我們較常用Cron Schedule:

// 具體任務

JobDetail job = JobBuilder.newJob(HelloJob. **class** ).withIdentity("job1", "group1").build();



   // 觸發時間點

   CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0 * * * * ? *");

   Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")

           .withSchedule(cronScheduleBuilder).build();

// 交由Scheduler安排觸發

scheduler.scheduleJob(job, trigger);

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1269

    瀏覽量

    69631
  • Quartz
    +關注

    關注

    0

    文章

    7

    瀏覽量

    7952
  • spring
    +關注

    關注

    0

    文章

    340

    瀏覽量

    14368
收藏 人收藏

    評論

    相關推薦

    智能手表Quartz

    本帖最后由 idianze 于 2017-4-14 09:55 編輯   導讀:日前,中興發布首款智能手表Quartz,高顏值、支持3G,售價1324元。  中興(ZTE)昨晚發布了旗下首款
    發表于 04-14 09:53

    怎么Web頁面實現簡單的按鈕按壓?

    嗨,我們已經修改了使用和諧棧的Web服務器示例。現在我們希望Web頁面實現簡單的按鈕按壓。當按下按鈕時,我們應該把消息發送到調試端口。MEMCMP(文件名,“1234。HTM”,8
    發表于 10-17 09:02

    web服務器監控系統設計的應用技巧有哪些?

    本文根據監控系統對數據吞吐量和安全可靠性等各方面的實際要求,結合相關研究的新進展,深入討論了web服務器監控系統設計的應用技巧,并詳細做了實現上的闡述。對所有基于嵌入式web技術的
    發表于 06-04 06:56

    Java基于WEB的嵌入式系統的應用

    該文提出了一種基于uClinux 嵌入式操作系統的嵌入式系統,使用Java 實現嵌入式實時數據采集系統數據WEB 實時圖形化顯示的方
    發表于 09-18 10:46 ?31次下載

    基于Web Service 的GIS農業的應用

    本文針對傳統 GIS 存在的數據共享困難、開發過程復雜的缺陷,首先簡述了WebService技術,進而提出了基于 Web Service 的 GIS 開發模型并描述了其運行過程,最后討論了基于 Web Serv
    發表于 12-12 15:01 ?10次下載

    Web技術智能建筑中央空調的應用

    根據中央空調控制系統的特點和系統集成的現狀,闡述了將Web Services技術應用于智能建筑系統集成的方法。構建了基于Web Services的智能建筑系統集成的結構,并介紹了其工作原
    發表于 01-22 14:36 ?12次下載

    Quartz DRC和Quartz LVS:最快速的全線性物

    微Wintegra公司使用微捷碼Quartz物理驗證產品成功完成了最新的低功耗、高性能65納米芯片的投片。擁有了Quartz DRC和Quartz LVS的先進功能,Wintegra能夠使用臺積電(TSMC)65納米規則運行集快
    發表于 06-24 09:01 ?1103次閱讀

    嵌入式 Linux 智能設備采用 Web 支持

    雖然嵌入式 Linux 智能設備采用 Web 支持已經解決了很多問題,但是還有一些和設備相關的特殊功能是 Web 支持不能提供的。
    發表于 05-04 16:45 ?716次閱讀
    <b class='flag-5'>在</b>嵌入式 Linux 智能設備<b class='flag-5'>中</b>采用 <b class='flag-5'>Web</b> 支持

    spring4.0如何整合Quartz實現任務調度詳細資料和程序說明

    Quartz框架是一個全功能、開源的任務調度服務,可以集成幾乎任何的java應用程序—從小的單片機系統到大型的電子商務系統。Quartz可以執行上千上萬的任務調度。
    發表于 05-06 18:23 ?1次下載
    spring4.0如何整合<b class='flag-5'>Quartz</b>實現任務調度詳細資料和程序說明

    如何使用spring4.0整合Quartz實現動態任務調度的程序資料說明

    Quartz框架是一個全功能、開源的任務調度服務,可以集成幾乎任何的java應用程序—從小的單片機系統到大型的電子商務系統。Quartz可以執行上千上萬的任務調度。
    發表于 04-26 18:26 ?0次下載
    如何使用spring4.0整合<b class='flag-5'>Quartz</b>實現動態任務調度的程序資料說明

    web開發django快速使用指南

    使用python開發web,使用Django,使你能夠以最小的代價構建和維護高質量的Web應用。Python各種web框架
    的頭像 發表于 05-05 22:19 ?3341次閱讀
    <b class='flag-5'>web</b>開發<b class='flag-5'>中</b>django快速使用指南

    Quartz任務調度基本實現原理

    Quartz是一個完全由Java編寫的開源作業調度框架,為Java應用程序中進行作業調度提供了簡單卻強大的機制。Quartz允許開發人員根據時間間隔來調度作業。它實現了作業和觸發器的多對多的關系,還能把多個作業與不同的觸發器關
    的頭像 發表于 04-12 10:48 ?1055次閱讀

    Quartz編碼中用到的幾個對象

    使用Quartz的時候,我們需要用到Quartz的幾個對象:Job(任務),JobDetail(任務定義:使用JobDetail來定義定時任務的實例),Trigger(觸發器:任務
    的頭像 發表于 04-12 10:50 ?495次閱讀

    Spring Boot QuartzJava Project的使用

    這一篇文章,我們緊接著上一篇的文章,講講Quartzjava project的項目中如何進行使用,在這里我們使用maven進行構建項目。先看下本章的大綱:
    的頭像 發表于 04-12 10:53 ?868次閱讀

    base64Web開發的作用

    Web開發,數據的傳輸和存儲是核心任務之一。然而,并非所有數據都可以直接在Web環境中高效傳輸。例如,二進制數據(如圖片、音頻和視頻)
    的頭像 發表于 11-10 11:07 ?456次閱讀
    主站蜘蛛池模板: 换脸国产AV一区二区三区 | 制服丝袜 快播 | 美女全光末满18勿进 | 免费看片A级毛片免费看 | avav去吧 | 精品久久久麻豆国产精品 | h版动漫在线播放的网站 | 99精品无码AV在线播放 | 爱豆剧果冻传媒在线播放 | 国产亚洲精品久久综合阿香 | 柏木舞子在线 | 久久久97人妻无码精品蜜桃 | 日本伦理电影聚 | 亚洲这里只有精品 | 欧美成人momandson | 国产精品人妻在线观看 | 艳鉧动漫片1~6全集在线 | 久久精品嫩草影院免费看 | 久久亚洲电影www电影网 | 国产亚洲精品AV麻豆狂野 | 久久精品综合网中文字幕 | 亚洲精品国产精麻豆久久99 | 一级大乳奶 | 无码欧美喷潮福利XXXX | 国产精品久久久久久人妻香蕉 | 91麻豆精品 | 窝窝影院午夜看片毛片 | 国产精品久久久久久人妻精品流 | 纯肉高H种马艳遇风流多 | 富婆找黑人老外泻火在线播放 | 国产精品久久欧美一区 | 无码国产伦一区二区三区视频 | 国偷自产视频一区二区久 | 久久精品国产午夜伦班片 | 精品水蜜桃久久久久久久 | 国产毛片女人高潮叫声 | 男人的天堂MV在线视频免费观看 | a在线观看免费视频 | 国产亚洲欧美日韩综合综合二区 | 久久精品国产eeuss | 国产精品久久久久久久伊一 |