java編程式控制quartz Scheduler 啟動和停止,無法停止的問題解決
在專案中需要手動啟停某些服務,那麼需要有一個控制這些任務的類。由於任務是有Quartz控制的,我們只需要通過Quartz的相關的API實現相關的功能即可。
在spring 配置中把自啟動關閉就可以用了
<bean id=""
class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
autowire="no">
<property name="triggers">
<list>
<ref local="collectrCronTrigger" />
</list>
</property>
<property name="autoStartup">
<value>false</value>
</property>
</bean>
- package com.easyway.app.quartz.mgr;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- import org.quartz.JobDataMap;
- import org.quartz.JobDetail;
- import org.quartz.JobKey;
- import org.quartz.Scheduler;
-
import org.quartz.SchedulerException;
- import org.quartz.SchedulerFactory;
- import org.quartz.Trigger;
- import org.quartz.TriggerKey;
- import org.quartz.impl.StdSchedulerFactory;
- import org.quartz.impl.matchers.GroupMatcher;
- /**
- * 一個簡單的quartz工作管理員
- * @author longgangbai
- *
- */
- public class QuartzScheduleMgr {
-
private
- /**
- * 建立一個排程物件
- * @return
- * @throws SchedulerException
- */
- private static Scheduler getScheduler() {
- SchedulerFactory sf = new StdSchedulerFactory();
- Scheduler scheduler=null;
- try {
- scheduler = sf.getScheduler();
- } catch (SchedulerException e) {
- e.printStackTrace();
- }
- return scheduler;
- }
- public static Scheduler getInstanceScheduler(){
- return scheduler;
- }
- /**
- * 啟動一個排程物件
- * @throws SchedulerException
- */
- public void start() throws SchedulerException
- {
- scheduler.start();
- }
- /**
- * 檢查排程是否啟動
- * @return
- * @throws SchedulerException
- */
- public boolean isStarted() throws SchedulerException
- {
- return scheduler.isStarted();
- }
- /**
- * 關閉排程資訊
- * @throws SchedulerException
- */
- public void shutdown() throws SchedulerException {
- scheduler.shutdown();
- }
- /**
- * 新增排程的job資訊
- * @param jobdetail
- * @param trigger
- * @return
- * @throws SchedulerException
- */
- public Date scheduleJob(JobDetail jobdetail, Trigger trigger)
- throws SchedulerException{
- return scheduler.scheduleJob(jobdetail, trigger);
- }
- /**
- * 新增相關的觸發器
- * @param trigger
- * @return
- * @throws SchedulerException
- */
- public Date scheduleJob(Trigger trigger) throws SchedulerException{
- return scheduler.scheduleJob(trigger);
- }
- /**
- * 新增多個job任務
- * @param triggersAndJobs
- * @param replace
- * @throws SchedulerException
- */
- public void scheduleJobs(Map<JobDetail, List<Trigger>> triggersAndJobs, boolean replace) throws SchedulerException
- {
- scheduler.scheduleJobs(triggersAndJobs, replace);
- }
- /**
- * 停止排程Job任務
- * @param triggerkey
- * @return
- * @throws SchedulerException
- */
- public boolean unscheduleJob(TriggerKey triggerkey)
- throws SchedulerException{
- return scheduler.unscheduleJob(triggerkey);
- }
- /**
- * 停止排程多個觸發器相關的job
- * @param list
- * @return
- * @throws SchedulerException
- */
- public boolean unscheduleJobs(List<TriggerKey> triggerKeylist) throws SchedulerException{
- return scheduler.unscheduleJobs(triggerKeylist);
- }
-
相關推薦
java編程式控制quartz Scheduler 啟動和停止,無法停止的問題解決
在專案中需要手動啟停某些服務,那麼需要有一個控制這些任務的類。由於任務是有Quartz控制的,我們只需要通過Quartz的相關的API實現相關的功能即可。 在spring 配置中把自啟動關閉就可以用了 <bean id="" class
程式碼控制Quartz的啟動和停止
Spring中如何使用Quartz就不必說了,這裡說說如果動態設定cron。 這個要解決3個問題: 1.將使用者輸入轉換為Cron表示式 2.安全的重啟quartz 3.程式啟動的時候,從資料庫中讀取cron(而非spring配置檔案中寫死的那個)。 因為derpvail急著用,
【並發編程】程序的啟動和終結
獨立 fec 區分 pan image tar 停止 實例化 -i Android是一個多用戶。多任務的系統。同意多個app在同一時刻執行,在多個程序之間切換並不會有明顯的延遲。多任務是由Linux內核負責處理的,而程序的執行基於Linux進程。Linux進程Linux為
使用Java進行udp-demo編程時碰到的consumer和producter無法連接並報出“java.net.SocketException: Can't assign requested address”問題
ons col 添加 使用 native 啟動參數 tag res strac 在用Java編寫了一個udp生產者和消費者的demo時,在生產者啟動的時候會拋出異常 java.net.SocketException: Can‘t assign requested addr
動態新增控制元件導致weight和height失效的解決方法
1 /** 2 * <p>Adds a child view. If no layout parameters are already set on the child, the 3 * default parameters for this ViewGroup are
vs2017啟動iis區域網無法訪問解決
1.找到IISExpress的配置檔案,位於 <文件>/IISExpress/config資料夾下,開啟applicationhost.config,找到如下程式碼: <site name="WebSite1" id="1" serverAutoStart="true"> <a
Java程式結構、if-else和switch條件選擇、for與while與do-while迴圈及beak和continue控制跳轉語句
Java程式的流程控制 Java流程控制提供了控制程式的基本手段,使得程式能夠按照正確的順序逐步執行,以實現特定的功能。Java流程控制結構分為:順序結構、選擇結構、迴圈結構。 順序結構 Java應用程式都是從main()方法開始執行的。程式一般是按照書寫順序依次向下執行,直
java-啟動和關閉.exe程式
連結: https://www.cnblogs.com/pengpengzhang/p/8675740.html https://blog.csdn.net/ZHANGHUI3239619/article/details/78808129 例: // 啟用exe客戶端 @RequestM
Java網絡編程【Socket服務端和客戶端】
rgs .net aio highlight 如果 org author oid try Socket 編程大家都不陌生,Java 學習中必學的部分,也是 Java網絡編程核心內容之一。Java 網絡編程又包括 TCP、UDP,URL 等模塊。TCP 對應 Socket
Java中的線程狀態轉換和線程控制常用方法
img sta () throw line star height style 技術 Java 中的線程狀態轉換: 【註】:不是 start 之後就立刻開始執行, 只是就緒了(CPU 可能正在運行其他的線程). 【註】:只有被 CPU 調度之後,線程才開始執行, 當
Java多線程編程:Callable、Future和FutureTask淺析
創建線程 執行 過程 data- body javase 接下來 而後 定義 通過前面幾篇的學習,我們知道創建線程的方式有兩種,一種是實現Runnable接口,另一種是繼承Thread,但是這兩種方式都有個缺點,那就是在任務執行完成之後無法獲取返回結果,那如果我們想要獲取返
Java並發編程:Callable、Future和FutureTask
done 泛型 new row run new t com 取消 底層 在前面的文章中我們講述了創建線程的2種方式,一種是直接繼承Thread,另外一種就是實現Runnable接口。這2種方式都有一個缺陷就是:在執行完任務之後無法獲取執行結果。如果需要獲取執行結果,就必須通
java編程基礎(三)流程控制語句
數據類型 char 格式 條件 -i es2017 else語句 運算 編程 流程控制語句 1.順序語句: 語句:使用分號分隔的代碼成為一條語句。 註意:沒有代碼,只有一個分號也是一條語句。 順序語句就是按照從上到下的順序依次執行的語句 2. if判斷語句 if語句
java----調用windows的DOS命令並回顯/啟動和關閉appium
學習記錄/** * Java調用windows的DOS命令 * 實現調用Windows的ipconfig命令,然後將輸出的信息通過IO流輸出到控制臺。 * 實現啟動appium服務 * 實現關閉appium服務 */ public class Doc { public static
java是編程式語言還是解釋性語言
自己 意義 ava ges 最終 優化 fortran 編譯型 .com 一、你可以說它是編譯型的。因為所有的Java代碼都是要編譯的,.java不經過編譯就什麽用都沒有。 二、你可以說它是解釋型的。因為java代碼編譯後不能直接運行,它是解釋運行在JVM上的,所以
Java編程思想(六、訪問權限控制)
而不是 包含 得到 獲取 開發 變量 平臺 世界 類的繼承 訪問控制(或隱藏具體實現)與“最初的實現並不恰當”有關。便於未來重構代碼,而不必對業務層做過多的改變。因此,Java提供了訪問控制修飾詞,以供類庫開發人員向客戶端程序員指明哪些是可用的,哪些是不可用的。 訪
Java編程思想第4版官方完整版及官方習題課後答案(code和pdf)
body post gpo pdf 課後答案 第4版 ava blog class Java編程思想第4版官方完整版及官方習題課後答案(code和pdf) Java編程思想第4版官方完整版及官方習題課後答案(code和pdf) Java編程思想第4版官方完整版及官方習題課後
Centos7.3_x86_64通過systemctl控制tomcat8.0.46啟動和停止
oca apache port 服務的啟動 編輯 根目錄 add load rip Centos7.3_x86_64通過systemctl控制tomcat8.0.46啟動和停止 之前在centos 6上通過腳本控制tomcat 啟動和停止的腳本,雖然在cent
spring中編程式事務控制
intra ans res ren nbsp new temp class 進行 step1:配置xml文件 1 <!-- 事務管理bean --> 2 <bean id="transactionManager" class="org.sprin
Java 並發編程——Executor框架和線程池原理
ignore 程序管理 on() explicit 開發 抽象類 bool i++ RR Eexecutor作為靈活且強大的異步執行框架,其支持多種不同類型的任務執行策略,提供了一種標準的方法將任務的提交過程和執行過程解耦開發,基於生產者-消費者模式,其提交任務的線程相當於