`
wangangie7
  • 浏览: 36673 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
最近访客 更多访客>>
社区版块
存档分类
最新评论

基于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类
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics