<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>Chapter 12. Scheduler</title><link rel="stylesheet" href="css/html.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="JBoss jBPM 3.1"><link rel="up" href="index.html" title="JBoss jBPM 3.1"><link rel="previous" href="taskmanagement.html" title="Chapter 11. Task management"><link rel="next" href="asynchronouscontinuations.html" title="Chapter 13. Asynchronous continuations"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr>
<th colspan="3" align="center">第12章. 调度程序(Scheduler)</th>
</tr><tr>
<td width="20%" align="left"><a accesskey="p" href="taskmanagement.html">上一页</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="asynchronouscontinuations.html">下一页</a></td>
</tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div>
<h2 class="title"><a name="scheduler"></a>第12章. 调度程序(Scheduler)</h2>
</div></div><div></div></div>
<p>这章描述在JBPM中定时器是如何工作的?</p>
<p>在流程中的事件之上,可创建定时器. 当定时器到期, 动作被执行或转换发生.</p>
<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="timers"></a>12.1. Timers</h2></div></div><div></div></div><p>最简单的指定一个定时器的方法是将一个timer元素加入到节点</p>
<pre class="programlisting"><state name='catch crooks'>
<timer name='reminder'
duedate='3 business hours'
repeat='10 business minutes'
transition='time-out-transition' >
<action class='the-remainder-action-class-name' />
</timer>
</state></pre>
<p>指定在节点上的定时器在离开节点后就不执行. transition和action是可选的. 在执行定时器时,将按顺序发生下列事件: </p>
<div class="itemizedlist"><ul type="disc"><li>一个timer类型的事件产生</li>
<LI>如果指定了动作,则动作被执行.</LI>
<LI>如果转换被指定,将会通过指定的转换送出一个信号来继续执行.</LI>
</ul>
</div>
<p>每个定时器必须有唯一的名称. 如果在timer元素中没有指定名字, 节点的名字将作为定时器的名字。</p>
<p>定时器动作可作为任何被支持的动作元素比如动作或脚本.</p>
<p>定时器由动作创建和中止。2个action-elements : create-timer和 cancel-timer . 实际上, 这两个定时器元素只是一个给在 node-enter上的create-timer动作和在<tt class="literal">node-leave</tt>上的cancel-timer动作的短符号(short notation).</p>
</div><div class="section" lang="en"><div class="titlepage"><div><div>
<h2 class="title" style="clear: both"><a name="schedulerdeployment"></a>12.2. 调度程序部署</h2>
</div></div><div></div></div>
<p>流程执行创建和取消定时器。定时器存放在一个定时器储存里. 一个隔离的定时器运行器必须检查定时器储存并且在预期的时候执行定时器.</p>
<div class="figure"><a name="scheduler.overview.image"></a><div class="mediaobject" align="center"><img src="images/scheduler.overview.gif" align="middle" alt="Scheduler components overview"></div><p class="title"><b>Figure 12.1. 调度程序 components overview</b></p></div>
<p>以下类图显示在调度程序部署中调用的类。接口 SchedulerService和 TimerExecutor被指定使定时器执行的机制是可插入的 .</p>
<div class="figure"><a name="scheduler.classes.image"></a><div class="mediaobject" align="center"><img src="images/scheduler.classes.gif" align="middle" alt="Scheduler classes overview"></div>
<p class="title"><b>Figure 12.2. 调度程序类概览</b></p>
</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr>
<td width="40%" align="left"><a accesskey="p" href="taskmanagement.html">上一页</a> </td>
<td width="20%" align="center"><a accesskey="u" href="index.html">向上</a></td>
<td width="40%" align="right"> <a accesskey="n" href="asynchronouscontinuations.html">下一页</a></td>
</tr><tr><td width="40%" align="left" valign="top">第11章. 任务管理 </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">首页</a></td>
<td width="40%" align="right" valign="top"> 第13章. 异步延续</td></tr></table></div></body></html>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>Chapter 12. Scheduler</title><link rel="stylesheet" href="css/html.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="JBoss jBPM 3.1"><link rel="up" href="index.html" title="JBoss jBPM 3.1"><link rel="previous" href="taskmanagement.html" title="Chapter 11. Task management"><link rel="next" href="asynchronouscontinuations.html" title="Chapter 13. Asynchronous continuations"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr>
<th colspan="3" align="center">第12章. 调度程序(Scheduler)</th>
</tr><tr>
<td width="20%" align="left"><a accesskey="p" href="taskmanagement.html">上一页</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="asynchronouscontinuations.html">下一页</a></td>
</tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div>
<h2 class="title"><a name="scheduler"></a>第12章. 调度程序(Scheduler)</h2>
</div></div><div></div></div>
<p>这章描述在JBPM中定时器是如何工作的?</p>
<p>在流程中的事件之上,可创建定时器. 当定时器到期, 动作被执行或转换发生.</p>
<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="timers"></a>12.1. Timers</h2></div></div><div></div></div><p>最简单的指定一个定时器的方法是将一个timer元素加入到节点</p>
<pre class="programlisting"><state name='catch crooks'>
<timer name='reminder'
duedate='3 business hours'
repeat='10 business minutes'
transition='time-out-transition' >
<action class='the-remainder-action-class-name' />
</timer>
</state></pre>
<p>指定在节点上的定时器在离开节点后就不执行. transition和action是可选的. 在执行定时器时,将按顺序发生下列事件: </p>
<div class="itemizedlist"><ul type="disc"><li>一个timer类型的事件产生</li>
<LI>如果指定了动作,则动作被执行.</LI>
<LI>如果转换被指定,将会通过指定的转换送出一个信号来继续执行.</LI>
</ul>
</div>
<p>每个定时器必须有唯一的名称. 如果在timer元素中没有指定名字, 节点的名字将作为定时器的名字。</p>
<p>定时器动作可作为任何被支持的动作元素比如动作或脚本.</p>
<p>定时器由动作创建和中止。2个action-elements : create-timer和 cancel-timer . 实际上, 这两个定时器元素只是一个给在 node-enter上的create-timer动作和在<tt class="literal">node-leave</tt>上的cancel-timer动作的短符号(short notation).</p>
</div><div class="section" lang="en"><div class="titlepage"><div><div>
<h2 class="title" style="clear: both"><a name="schedulerdeployment"></a>12.2. 调度程序部署</h2>
</div></div><div></div></div>
<p>流程执行创建和取消定时器。定时器存放在一个定时器储存里. 一个隔离的定时器运行器必须检查定时器储存并且在预期的时候执行定时器.</p>
<div class="figure"><a name="scheduler.overview.image"></a><div class="mediaobject" align="center"><img src="images/scheduler.overview.gif" align="middle" alt="Scheduler components overview"></div><p class="title"><b>Figure 12.1. 调度程序 components overview</b></p></div>
<p>以下类图显示在调度程序部署中调用的类。接口 SchedulerService和 TimerExecutor被指定使定时器执行的机制是可插入的 .</p>
<div class="figure"><a name="scheduler.classes.image"></a><div class="mediaobject" align="center"><img src="images/scheduler.classes.gif" align="middle" alt="Scheduler classes overview"></div>
<p class="title"><b>Figure 12.2. 调度程序类概览</b></p>
</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr>
<td width="40%" align="left"><a accesskey="p" href="taskmanagement.html">上一页</a> </td>
<td width="20%" align="center"><a accesskey="u" href="index.html">向上</a></td>
<td width="40%" align="right"> <a accesskey="n" href="asynchronouscontinuations.html">下一页</a></td>
</tr><tr><td width="40%" align="left" valign="top">第11章. 任务管理 </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">首页</a></td>
<td width="40%" align="right" valign="top"> 第13章. 异步延续</td></tr></table></div></body></html>