`
wf_7758520
  • 浏览: 13782 次
  • 性别: Icon_minigender_1
  • 来自: 福建
最近访客 更多访客>>
社区版块
存档分类
最新评论

关于jbpm的任务调度和工作日历(1)

    博客分类:
  • JBPM
阅读更多

作者: wf_7758520 ( name: wangfeng, email: wf_7758520 @163.com , blog:http:// wf_7758520 .iteye.com )

jBPM通过定时器(timer)实现日程调度。在node中加入timer元素,即可实现基于定时器的节点执行监控。

//运用action的timer的例子<state name="catch crooks"></state> 

xml 代码
  1. <state name='catch crooks'>  
  2.   <timer name='reminder' duedate='3 business hours' repeat='10 business minutes'  
  3.       transition='time-out-transition' >  
  4.     <action class='the-remainder-action-class-name' />  
  5.   timer>     
  6. state>  

 //运用script的timer的例子

xml 代码

  1. <state name='catch crooks'>  
  2.   <timer name='reminder' duedate='3 business hours' repeat='10 business minutes'  
  3.       transition='time-out-transition' >  
  4.     <script>System.out.println(new Date())script>    
  5.   timer>     
  6. state>  

在上例中,一旦流程实例运行进入state 'catch crooks',定时器reminder即被创建。该定时器在3个工作小时到期,到期后马上执行action类中的Java代码,然后实施time-out-transition(或script打印时间)迁移。
通过在事件的action中加入create-timer和cancel-timer动作,可以分别实现事件对定时器的创建和取消。
定时器timer可以被用于decision fork join node process-state state super-state task-node,可以设置开始时间duedate和频率repeat,定时器动作可以是所支持的任何动作元素,如action或script,会运行我们设置的商务动作。定时器通过动作创建和取消,有两个动作元素create-timer和cancel-timer。事实上,默认的定时器元素只是create-timer动作依附于node-enter事件、cancel-timer动作依附于node-leave事件的一个简略表示。
timer还有一个很重要的属性cancel-event,这个是timer和task结合时使用的,任务定时器的cancel-event可以被定制。默认情况下,当任务被结束时(=完成)任务上的定时器将被取消,这是通过在定时器上使用cancel-event属性,流程开发者可以定制诸如task-assign或task-start。cancel-event支持多个事件,通过在属性中指定一个用逗号分割的列表,可以组合cancel-event的类型。

另注: 运用timer要先启动scheduler,scheduler的启动代码如下

  1. public static void initSchedular() {// 设置Schedular的属性   
  2.   
  3.         scheduler = new Scheduler();   
  4.   
  5.        int interval = 5000;   
  6.   
  7.         scheduler.setInterval(interval);   
  8.   
  9.        int historyMaxSize = 0;   
  10.   
  11.         scheduler.setHistoryMaxSize(historyMaxSize);   
  12.   
  13.         scheduler.start();   
  14.   
  15.     }   
  16.   
  17.     public static void destroy() {    
  18.   
  19.         scheduler.stop();   
  20.   
  21.     }   
 

但在实际的项目中不会这样用,如果是web项目则只要在web.xml中配置JbpmThreadsServlet,这样在项目启动后会自动开启scheduler。

 

JbpmThreadsServlet配置如下:          

xml 代码
  1. <!---->  
  2. <servlet>  
  3. <servlet-name>JbpmThreadsServletservlet-name>  
  4. <servlet-class>org.jbpm.web.JbpmThreadsServletservlet-class>  
  5. <load-on-startup>1load-on-startup>  
  6. servlet>  
  7. <servlet-mapping>  
  8. <servlet-name>JbpmThreadsServletservlet-name>  
  9. <url-pattern>/threadsurl-pattern>  
  10. servlet-mapping>   

  

\\下一节介绍工作日历

 

 

分享到:
评论
4 楼 liveam 2007-10-30  
这个timer是2.0中的吧?????3.2中已经取消了?还是已经换了一种方式?
3 楼 hcf.chen 2007-08-15  
我也写了一个例子,为什么我在web.xml中配置如下。我的timer(计时器怎么不执行)??高手能否指名一下
2 楼 rihoonet 2007-06-01  
对jBPM不了解,但对流程建模还是有一定的了解。
1 楼 piaoling 2007-05-29  
写得不错,LZ继续努力!支持

相关推荐

    jbmp入门教程,jBPM流程定义语言,业务日历,流程建模

    jBPM(Java Business Process Management)是一个开源的工作流和业务流程管理系统,用于处理复杂的业务流程。本教程将深入探讨jBMP的核心概念,包括流程定义语言、业务日历以及流程建模,帮助初学者快速入门。 一、...

    JBPM4 java源代码分包详解JBPM4

    1. **org.jbpm.pvm.internal.ant**: 此包包含与Ant构建工具集成的相关类,主要用于发布流程和辅助启动JBoss服务器的任务。这使得开发者可以利用Ant脚本来自动化流程部署和服务器的启动过程。 2. **org.jbpm.pvm....

    jbpm3.1

    jBPM 3.1 是一个开放源代码的工作流引擎,由 JBoss 提供支持,旨在简化业务流程管理(BPM)任务。它提供了一整套工具和服务来支持流程的设计、部署、执行和监控。 #### 二、概述 **1.1. 概述** jBPM 3.1 是一个...

    JBPM工作流

    JBPM是一个开源的工作流管理系统,主要使用Java开发,持久层采用Hibernate实现,确保了良好的数据库兼容性和跨平台性。本文旨在详细介绍JBPM的基本概念及其核心功能,帮助读者快速掌握JBPM的工作流程。 #### 一、...

    深入浅出JBPM

    工作执行器则是负责执行具体任务的组件,它根据流程定义中的规则和条件,调度并执行任务,支持任务的委托、暂停、恢复和终止。 #### 正式开始与项目目录 在开始使用JBPM之前,需要下载包含jPDL3.12和jPDL流程设计...

    jbpm4.4工作流开发指南pdf

    ### JBPM 4.4 工作流开发指南知识点总结 #### 一、概述 - **JBPM**:JBPM 是一个开源的工作流管理系统,它使用纯 Java 编写,可以方便地集成到 Java 应用中。JBPM 的设计目标是提供一个简单而强大的流程管理解决...

    Jbpm源代码分包详解

    `org.jbpm.pvm.internal.jobexecutor`提供了任务执行器,包括Servlet和线程池,以及各种命令和处理器,确保作业、消息和定时器的有效调度和执行。 `org.jbpm.pvm.internal.lob`包处理流程发布时的大型对象(LOB),...

    JBPM开发指南WORD文档

    #### 六、日历与调度(Scheduler) JBPM的`Scheduler`功能允许用户基于时间和日期对流程执行进行计划和控制,无论是C/S架构还是Web应用,都能够灵活地利用`Scheduler`功能来满足不同场景的需求。 #### 七、异步...

    JBPM4.3编程指南

    - **核心概念**:讲解了流程虚拟机的基本原理和工作方式,是理解后续章节的基础。 - **活动API**:提供了创建和管理活动所需的API接口,包括活动的创建、查询、更新等操作。 - **事件监听API**:支持在关键节点注册...

    JBPM 开发指南

    - **C/S 程序上的应用**: 在客户端/服务器架构中使用日历来调度任务。 - **Web 上的应用**: 在 Web 应用中使用日历来管理任务。 - **时间分类**: 不同类型的时间安排,如一次性任务、周期性任务等。 #### 七、异步...

    JBoss jBPM jPDL中文指南

    JBoss jBPM(Java Business Process Management)是一个开源的工作流引擎,主要用于实现业务流程管理和任务协调。jPDL(jBPM Process Definition Language)是jBPM早期版本中使用的一种流程定义语言,它提供了一种...

    深入浅出jBPM完整版part1

    5 章 任务调度............................................133 5.1 原理.........................................................133 5.2 业务日历.................................................134 5.3 ...

    很全面的jbpm 的中文文档----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    第一章:介绍 第二章 开始 第三章. 讲座 ...第九章 任务管理 第十章 调度程序 第11章 业务日历 第12章. 记录 第13章. jBPM 流程定义语言 (JPDL) 第14章 安全 第15章. TDD适合工作流 第16章 可插入架构

    深入浅出jBPM完整版part2

    5 章 任务调度............................................133 5.1 原理.........................................................133 5.2 业务日历.................................................134 5.3 ...

    微内核工作流引擎 体系结构与部分解决方案.pdf

    - **7.6.3.5 工作日历**:根据预先设定的工作日历调整流程执行计划,避免在非工作时间执行任务。 - **7.7 基础组件层**:这一层主要包括数据库连接、缓存机制等底层技术组件,为上层服务提供技术支持。 #### ...

    微内核工作流引擎体系架构与部分解决方案参考

    工作日历用于管理假期和工作时间。 - **基础组件层**:提供底层的技术支持和服务,如消息队列用于异步通信、缓存管理用于提高性能、日志记录用于追踪错误和调试。 #### 结语 通过对微内核工作流引擎体系架构的深入...

Global site tag (gtag.js) - Google Analytics