基於quartz任務調度組件的使用

  2.0版本的aop框架中集成了quartz任務調度組件,該組件包含三部分:
  1. 任務管理組件:用來啓動和停止任務調度引擎,管理任務(新增,啓動,修改,停止,掛起/繼續,刪除任務)
  org.frameworkset.task.TaskService
  2. 任務管理服務組件:按分組模式管理所有的job任務,並從相關的數據源加載作業任務
  所有的任務管理組件都從抽象類org.frameworkset.task. ScheduleService繼承
  3. 任務配置文件:用來配置不同的作業服務和具體的作業job。對應的配置文件爲:
  /bbossaop/resources/org/frameworkset/task/quarts-t ask.xml
  下面分別舉例說明:
  任務管理控件:用來啓動和停止任務調度引擎,管理任務(啓動,修改,停止,刪除任務)
  org.frameworkset.task.TaskService
  啓動任務引擎 TaskService.getTaskService ().startService(); 停止任務引擎 TaskService.getTaskService ().stopService(); 刪除任務 TaskService.getTaskService ().deleteJob(String jobname, String groupid) 暫停任務 TaskService.getTaskService ().pauseJob(String jobname, String groupid) 繼續任務 TaskService.getTaskService (). resumeJob(String name, String groupid) 新增和啓動任務 TaskService.getTaskService (). startExecuteJob(String groupid, SchedulejobInfo jobInfo) 更新任務 TaskService.getTaskService () .updateExecuteJob(String groupid, SchedulejobInfo jobInfo) 所有的任務管理組件都從抽象類org.frameworkset.task. ScheduleService繼承,定義了一下抽象方法:
  publicabstractvoid startService(Scheduler scheduler) throws ScheduleServiceException;
  public abstractvoid startExecuteJob(Scheduler scheduler,SchedulejobInfo jobInfo);
  public abstractvoid updateJob(Scheduler scheduler,SchedulejobInfo jobInfo);
  public abstractvoid updateTriger(Scheduler scheduler,SchedulejobInfo jobInfo);
  public abstractvoidupdateJobAndTriger (Scheduler scheduler, SchedulejobInfo jobInfo); 系統中默認提供的任務管理組件 org.frameworkset.task.DefaultScheduleService,用來加載系統中默認的靜態的任務,可以配置多個作業任務 如果用戶需要動態管理自己的作業任務,那麼可以編寫自己的ScheduleService,實現org.frameworkset.task. ScheduleService類的抽象方法:
  publicclassDemoScheduleServiceextends ScheduleService {
  @Override
  publicvoid startExecuteJob(Scheduler scheduler, SchedulejobInfo jobInfo) {
  //執行新定義的任務
  }
  @Override
  publicvoid startService(Scheduler scheduler)
  throws ScheduleServiceException {
  //系統啓動時,從資源庫中獲取所有的已經存在的任務,並加載到scheduler引擎中。
  }
  @Override
  publicvoid updateJob(Scheduler scheduler, SchedulejobInfo jobInfo) {
  更新一個已經加載的作業任務
  }
  @Override
  publicvoid updateJobAndTriger(Scheduler scheduler, SchedulejobInfo jobInfo) {
  更新作業任務,並觸發任務的執行
  }
  @Override
  publicvoid updateTriger(Scheduler scheduler, SchedulejobInfo jobInfo) {
  更新任務觸發器
  }
  }
  編寫好自定義的任務服務組件後就可以將其配置到quarts-task.xml文件中了,例如:
   必須指定唯一的taskid屬性,use屬性用來設置該任務組件是否生效。
  一個簡單的配置文件
  /bbossaop/resources/org/frameworkset/task/quarts-t ask.xml的內容如下:
  
   說明: org.frameworkset.task.DefaultScheduleService是系統中默認提供的任務管理組件,用來加載系統中默認的靜態的任務,可以配置多個,例如: 屬性說明: Taskid:用來區分任務組,可以作爲任務組的唯一標識,系統中通過Taskid和jobid來區分唯一的一個作業任務,TaskService組件的很多方法中都有groupid和jobname兩個參數,taskid就對應於groupid參數,jobid對應於jobname參數。 Name 任務的名稱 Jobid 任務的標識 Action任務執行的操作 cronb_time 任務執行的調度時間,具體需要參考cronb_time的語法。
  use:區分任務是否生效 內嵌的節點 用來指定任務執行時需要的參數。 需要特別說明的是Action類必須實現org.frameworkset.task.Execute接口,例如: publicclassTestJobimplements Execute, Serializable { publicvoid execute(Map parameters) { System.out.println("send_count = "+parameters.get("send_count")); } } 如果用戶需要動態管理自己的作業任務,那麼可以實現org.frameworkset.task. ScheduleService類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章