BPM配置学习

企业流程化管理,经常想到的是ERP等,今天翻阅martini中的bpm实现,学习了里面的流程化业务管理模式。

在martini中bpm进行任务流转和调度的,会用到一个叫Quartz的框架,只需要通过在Spring的bean管理中进行配置和依据Quartz的比较常用的两个org.springframework.scheduling.quartz.SimpleTriggerBean和org.springframework.scheduling.quartz.CronTriggerBean就可以十分灵活的实现任务的策略调用。

两个类的区别为:

SimpleTrigger更类似于JDK中的Timer,它只是简单的以某个时间间隔来执行某个任务而已,比较简陋,而CronTrigger功能则十分强大,可以设定制定任务在任意指定时刻内调用。


Spring的配置如下:

CronTriggerBean类进行任务调配(精确定义任务执行时间):

    <bean id="cacheRefreshTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
                <property name="concurrent" value="false"/>
                    <property name="targetObject" ref="resourceManager"/>
                    <property name="targetMethod" value="patrol"/>
            </bean>
        </property>
        <property name="cronExpression" value="0 0/1 * * * ?"/>
    </bean>


SimpleTriggerBean类进行任务调配(可以定义任务执行频率):

<bean id="simpleReportTrigger"       class="org.springframework.scheduling.quartz.SimpleTriggerBean">
    <property name="jobDetail">
      <ref bean="reportJob"/>
    </property>
    <property name="startDelay">
      <value>3600000</value>
    </property>
    <property name="repeatInterval">
      <value>86400000</value>
    </property>
  </bean>


cronExpression 配置任务执行的间隔时间、频率,用法有点类似linux上面的启动任务的list 。 具体是(参考文档:http://xiaolele.iteye.com/blog/368922。这里写的很细,在细就参考http://www.opensymphony.com/quartz主页):

字段名  允许的值  允许的特殊字符

  0-59   , - * /
  0-59   , - * /
小时   0-23   , - * /
  1-31   , - * ? / L W C
  1-12 or JAN-DEC   , - * /
周几   1-7 or SUN-SAT   , - * ? / L C #
年 (可选字段)   empty, 1970-2099   , - * /


cronExpression参考:http://xiaolele.iteye.com/blog/368922


你可能感兴趣的:(BPM配置学习)