1. 程式人生 > >第一個Quartz程式 (二)

第一個Quartz程式 (二)

1 我們使用maven專案

2 建立一個job類,在execute()方法裡寫上業務邏輯程式碼。

3 在另外一個類中建立觸發器,排程器,並且繫結job。

首先在專案的pom.xml引入需要的jar包。

     <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.2.1</version>
      </
dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.2.1</version> </dependency>

建立一個job

package quartz;

import java.text.SimpleDateFormat;
import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class JobClass implements Job { public void execute(JobExecutionContext arg0) throws JobExecutionException { Date date=new Date(); SimpleDateFormat sf
=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("當前時間為:"+sf.format(date)); // 編寫業務邏輯 System.out.println("hello Quartz"); } }

 再建立另外一個類

package quartz;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

public class SchedulerClass {
    
    public static void main(String[] args) throws SchedulerException {
        // 建立一個JobDetail例項 將該例項與JobClass繫結,JobDetail是由Builder模式來建立的,JobDetail是來繫結job的。
        // withIdentity 建立唯一的標識
        JobDetail jobDetail = JobBuilder.newJob(JobClass.class).withIdentity("job").build();
        
        // 建立一個Tigger例項,定義 job立即執行,並每隔一段時間重複執行,每隔5秒中執行一次
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger").startNow()
                .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever()).build();
        
        // 建立一個Scheduler例項, Scheduler是由工廠模式來建立的 so
        SchedulerFactory factory = new StdSchedulerFactory();
        Scheduler scheduler = factory.getScheduler();
        scheduler.start();

        Date date = new Date();
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("當前時間為:" + sf.format(date));
        //排程器呼叫任務和觸發器,scheduler將job,trigger繫結在一起。
        scheduler.scheduleJob(jobDetail, trigger);
        
        
        

    }
}

但是這樣看起來很複雜的!

相關推薦

一個Quartz程式

1 我們使用maven專案 2 建立一個job類,在execute()方法裡寫上業務邏輯程式碼。 3 在另外一個類中建立觸發器,排程器,並且繫結job。 首先在專案的pom.xml引入需要的jar包。 <dependency> <groupId&g

手把手教你用nginx開發自己的伺服器------利用nginx開發一個helloWorld程式

現在我們正式開始編寫nginx的helloWorld功能,該從哪下手呢?別急,我們在上一篇文章中提到了事件驅動對吧。nginx是怎麼樣事件驅動的呢?我們來看看ngx_worker_process_cycle()這個函式的一部分for ( ;; ) { if

VSCode 的一個C++程式windows[更新2018.10.28]

所有的第一次都只是用來熟悉一下操作的,肯定是無法滿足實際的需求的,所以進行了這次的更新。 更新內容: 採用了makfile去編譯生成中間檔案和可執行檔案; 採用了多目錄的檔案樹,將原始檔、標頭檔案、中間檔案以及可執行檔案分別存放在不同的目錄中; makef

利用IDEA的Maven建立一個java程式helloworld

利用IDEA的Maven建立第一個java程式 1、如果剛安裝完IDEA,開啟之後出現以下介面,點選Create New Project 2、出現New Project對話方塊,在左側選擇Mav

VSCode的一個C++程式Linux

引言 VSCode作為微軟推出的一款免費的輕量級的整合開發環境,可謂是良心之作。它擁有VS的高顏值,而且像瑞士軍刀一樣,擁有豐富的外掛,c/c++、java、python、js、html等等,它都能輕鬆駕馭。 目錄 安裝 VSC

Android SDK的配置與安裝eclipse最新版+一個Android程式Hello World!

Android SDK SDK介紹 SDK:(software development kit)軟體開發工具包。被軟體開發工程師用於為特定的軟體包、軟體框架、硬體平臺、作業系統等建立應用軟體

Ubuntu下建立一個qt程式非qt IDE

使用QT5.9.1版本,自己建立qt源程式,經qmake編譯實現自己的第一個qt 程式。 /home/ttwang/Desktop目錄下建立一個資料夾qt-learing mkdir qt-learing 在/home/ttwang/Deskto

Linux下G++編譯一個C++程式Hello, world

安裝完各種環境工具之後(sudo apt install g++) 繼而新建一個空白文件Helloworl.cpp,貼上進最簡單的程式碼: #include<iostream>

一個Netty程式編寫Hello Netty伺服器

具體步驟 構建一對主從執行緒組 定義伺服器啟動類 為伺服器設定channel 設定處理從執行緒池的助手類初始化器(我們會有一個channel,這個channel會有一堆相應的助手類handler對它進行處理,如編解碼處理、讀寫資料等。這些操作都是需要歸類在助

Phaser3入門教程:一個Phaser3遊戲中文版

裝載資源 現在要為我們的遊戲載入所需的資源了。我們只需要在場景函式preload中加入Phaser的載入程式碼即可,Phaser將自動呼叫該函式並執行裡面的內容。 當前的preload函式體為空,我們將它改成下面這樣: function preload ()

一個C#程式飛行棋遊戲,以及學習感悟-待完善

歡迎使用Markdown編輯器寫部落格 本Markdown編輯器使用StackEdit修改而來,用它寫部落格,將會帶來全新的體驗哦: Markdown和擴充套件Markdown簡潔的語法 程式碼塊高亮 圖片連結和圖片上傳 LaTex數學公式 UML序列圖和

一個java程式9x9乘法表

public class test {public static void main(String argsp[]){int i,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++){ System.out.print(i+"*"+j+"=

一天練習一個小C/C++程式 指標到底該如何使用

以前寫C基礎的時候,寫過很多次指標的例子,那到底指標在C專案中會怎麼應用呢? 通常有兩方面: 一:函式的傳參:我們已經說過,函式傳參除非傳的是記憶體地址,要不修改後的值對傳入之前的值沒有影響。 二:跨函式修改值: 其實我覺得這個和第一條一樣。。都是為了使其在另一個函式的修改

使用 Android Studio 寫出一個 NDK 程式超詳細

    NDK(Native Development Kit),是用於在 Android 應用中巢狀原生代碼的工具集,現在 Android 開發最常用的工具就是 Android Studio 了,筆者也是剛剛接觸 NDK 開發,用了一天的時間,踩了很多坑,最終跑通了自己的第一

手把手做一個JSP入門程式:建立一個專案JSP

建立一個專案 我們使用Eclipse和Web伺服器的Tomcat進行開發。Eclipse我們需要用“Eclipse IDE for Java EE Developers”(Eclipse為java EE 開發者準備的一個IDE工具),可以點選這裡到官網下載最新

我的一個Python程式簡單的使用者名稱密碼登入程式

話說啊,所謂的C語言1000行,Java100行,Python20行呢。。。光一個登入就30行了。、  一個輸入使用者名稱密碼的登入程式: init_usrname=input('Please en

一個hadoop程式java程式訪問hadoop的hdfs檔案系統中的檔案

1:hadoop2.7.3環境 2:阿里雲伺服器centos6.5,ip是:47.88.14.190 3:hadoop在偽分散式下執行的。 4:具體配置檔案如下: 1)core-site.xml配置(ip地址最好不用localhost,不然不好測試) <configu

一個AngularJS Demo購物車

mod 購物 set sco tle ng-model -m -c 刪除 <!DOCTYPE html><html><head>   <meta charset="utf-8" />   <script sr

BlinkLED 點亮一個LED燈C#

text interval rgs pri art one namespace ane ready 界面: <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">

軟件工程——三次作業

images blog 重定向 logs width 效能 2-2 ima mage 對上周作業中的功能4 (僅由文件重定向讀入,不由控制臺讀入) 做效能分析。 功能4:(還沒改出來,出錯,待續。) git: 軟件工程——第三次作業(二)