【軟通鯤鵬云最佳實踐43】quartz-2.3.1 鯤鵬云服務器安裝實踐
一、?軟件介紹
Quartz是一個開源的作業調度框架,它完全由Java寫成,并設計用于J2SE和J2EE應用中。它提供了巨大的靈 活性而不犧牲簡單性。你能夠用它來為執行一個作業而創建簡單的或復雜的調度。
二、?支持的操作系統
經過華為云嚴格實測,以下操作系統在鯤鵬生態中可以完整運行Varnish的全部功能:
CentOS7.6
建議使用的版本:quartz-2.3.1
-:
通過mvn獲?。?/p>
四、?編譯與測試環境
本文選用華為鯤鵬云服務器ECS KC1實例做測試,KC1實例的處理器為兼容ARMv8指令集的鯤鵬920。詳細規格如下:
類別
子項
版本
云主機配置
ECS實例類型
kc1.2xlarge.4
ECS配置
8U32GB
EVS
高IO(80GB)
云OS
Kernel
4.18.0
五、?編譯安裝與測試
1?安裝依賴
#?yum?-y?install?wget?tree 卸載自帶的jdk,安裝jdk-1.8_151: #?rpm?-qa?|?grep?jdk #?rpm?-e?--nodeps?java-1.8.0-openjdkxxxxxxx #?rpm?-e?--nodeps?java-1.8.0-openjdk-headlessxxxxxxxx #?cd?/opt/?&&?wget?https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-arm64-vfp-hflt.tar.gz #?tar?-zxvf?jdk-8u151-linux-arm64-vfp-hflt.tar.gz #?vim?/etc/profile export?JAVA_HOME=/opt/jdk1.8.0_151 export?PATH=$PATH:$JAVA_HOME/bin #?source?/etc/profile
2?編譯安裝
下載maven,并安裝:
#?wget?http://mirrors.hust.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz #?tar?-zxvf?apache-maven-3.6.0-bin.tar.gz
配置環境變量:
#?vim?/etc/profile export?MAVEN_HOME=/opt/apache-maven-3.6.0 export?PATH=$PATH:$MAVEN_HOME/bin :wq保存.#?mvn?-version Apache?Maven?3.6.0?(97c98ec64a1fdfee7767ce5ffb20918da4f719f3;?2018-10-25T02:41:47+08:00) Maven?home:?/opt/apache-maven-3.6.0 Java?version:?1.8.0_212,?vendor:?Oracle?Corporation,?runtime:?/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.aarch64/jre Default?locale:?zh_CN,?platform?encoding:?UTF-8 OS?name:?"linux",?version:?"4.14.0-115.5.1.el7a.aarch64",?arch:?"aarch64",?family:?"unix"
創建spring java 項目:
#?mvn?archetype:generate?-DgroupId=com.isstech?-DartifactId=demo?-DarchetypeArtifactId=maven-archetype-quickstart 提示: [INFO]?---------------------------------------------------------------------------- [INFO]?Using?following?parameters?for?creating?project?from?Old?(1.x)?Archetype:?maven-archetype-quickstart:1.0 [INFO]?---------------------------------------------------------------------------- [INFO]?Parameter:?basedir,?Value:?/opt [INFO]?Parameter:?package,?Value:?com.isstech [INFO]?Parameter:?groupId,?Value:?com.isstech [INFO]?Parameter:?artifactId,?Value:?demo [INFO]?Parameter:?packageName,?Value:?com.isstech [INFO]?Parameter:?version,?Value:?1.0-SNAPSHOT [INFO]?project?created?from?Old?(1.x)?Archetype?in?dir:?/opt/demo [INFO]?------------------------------------------------------------------------ [INFO]?BUILD?SUCCESS [INFO]?------------------------------------------------------------------------ [INFO]?Total?time:??06:07?min [INFO]?Finished?at:?2019-10-16T07:48:43+08:00 [INFO]?------------------------------------------------------------------------
項目創建成功,項目目錄結構如下:
#?tree?demo demo ├──?pom.xml └──?src ????├──?main ????│???└──?java ????│???????└──?com ????│???????????└──?isstech ????│???????????????└──?App.java ????└──?test ????????└──?java ????????????└──?com ????????????????└──?isstech ????????????????????└──?AppTest.java
修改demo/pom.xml,加載quartz:
#?vim?deom/pom.xml
我不使用junit組件來測試用例,所以刪掉AppTest.java
#?rm?-rf?src/test
創建demo/src/main/java/com/isstech/HelloJob.java文件
#?vim?demo/src/main/java/com/isstech/HelloJob.java
package?com.isstech; ? import?org.quartz.Job; import?org.quartz.JobExecutionContext; import?org.quartz.JobExecutionException; ? import?java.text.SimpleDateFormat; import?java.util.Date; ? public?class?HelloJob?implements?Job?{ ????public?void?execute(JobExecutionContext?jobExecutionContext)?throws?JobExecutionException?{ ????????Date?date?=?new?Date(); ????????SimpleDateFormat?sf?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss"); ????????System.out.println("Current?Time?is:"+?sf.format(date)); ????????System.out.println("Hello?Quartz"); ????} }
修改App.java為HelloScheduler.java,添加邏輯觸發HelloJob;
#?mv?demo/src/main/java/com/isstech/App.java?demo/src/main/java/com/isstech/HelloScheduler.java #?vim?demo/src/main/java/com/isstech/HelloScheduler.java
package?com.isstech; ? import?org.quartz.JobBuilder; import?org.quartz.JobDetail; import?org.quartz.Scheduler; import?org.quartz.SchedulerException; import?org.quartz.SimpleScheduleBuilder; import?org.quartz.SimpleTrigger; import?org.quartz.TriggerBuilder; import?org.quartz.impl.StdSchedulerFactory; ? public?class?HelloScheduler?{ ????public?static?void?main(String[]?args)?throws?SchedulerException?{ ????????//創建一個jobDetail的實例,將該實例與HelloJob?Class綁定 ????????JobDetail?jobDetail?=?JobBuilder.newJob(HelloJob.class).withIdentity("myJob").build(); ????????//創建一個Trigger觸發器的實例,定義該job立即執行,并且每2秒執行一次,一直執行 ????????SimpleTrigger?trigger?=?TriggerBuilder.newTrigger().withIdentity("myTrigger").startNow() ????????????????????.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever()).build(); ????????//創建schedule實例 ????????StdSchedulerFactory?factory?=?new?StdSchedulerFactory(); ????????Scheduler?scheduler?=?factory.getScheduler(); ????????scheduler.start(); ????????scheduler.scheduleJob(jobDetail,trigger); ? ????} }
3?驗證測試
構建項目
#?cd?demo?&&?mvn?clean?package
成功顯示如下:
#?java?-jar?/opt/demo/target/demo-1.0-SNAPSHOT.jar SLF4J:?Failed?to?load?class?"org.slf4j.impl.StaticLoggerBinder". SLF4J:?Defaulting?to?no-operation?(NOP)?logger?implementation SLF4J:?See?http://www.slf4j.org/codes.html#StaticLoggerBinder?for?further?details. Current?Time?is:2019-10-16?10:40:25 Hello?Quartz Current?Time?is:2019-10-16?10:40:27 Hello?Quartz Current?Time?is:2019-10-16?10:40:29 Hello?Quartz Current?Time?is:2019-10-16?10:40:31 Hello?Quartz Current?Time?is:2019-10-16?10:40:33 Hello?Quartz Current?Time?is:2019-10-16?10:40:35 Hello?Quartz
4?問題總結
無
六、?聲明
本文檔中的軟件包均來自軟件官網,安裝文檔部分參考官網的安裝方法,本軟件測試環境為華為鯤鵬云ARM服務器,具體配置信息參照《編譯與測試環境》部分。
本文檔中的軟件安裝測試基于華為鯤鵬云ARM服務器環境測試,如在使用本文檔的安裝方法進行安裝過程中,可能由于系統版本、軟件依賴或其他原因造成軟件安裝不成功,請自行解決或聯系我們,請事先備份相關重要數據、資料。
使用文檔風險由用戶自行承擔,在適用法律允許的最大范圍內,對因使用或不能使用本文檔所產生的損害及風險,包括但不限于直接或間接的個人損害、商業贏利的喪失、貿易中斷、商業信息的丟失或任何其它經濟損失,我司不承擔任何責任。
我司不擔保所提供的軟件功能及服務一定能滿足用戶的要求,也不擔保服務不會中斷,對服務的及時性、安全性、真實性、準確性都不作擔保。
鯤鵬
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。