Timer 使用activiti中的计时器在指定时间内完成任务

Timer 使用activiti中的计时器在指定时间内完成任务,timer,activiti,Timer,Activiti,我创建了一个使用计时器的工作流,即我想在用户任务中使用计时器。这意味着,如果用户未在指定时间内执行其任务,则任务将从其挂起任务列表中清除,并且令牌将移动到工作流中的指定节点。 我的bmpn.xml文件是: <process id="newprocess6" isExecutable="true"> <startEvent id="start" name="Start Consulting" activiti:initiator="initiator">

我创建了一个使用计时器的工作流,即我想在用户任务中使用计时器。这意味着,如果用户未在指定时间内执行其任务,则任务将从其挂起任务列表中清除,并且令牌将移动到工作流中的指定节点。 我的bmpn.xml文件是:

    <process id="newprocess6" isExecutable="true">
    <startEvent id="start" name="Start Consulting" activiti:initiator="initiator">
    <extensionElements>
    <activiti:formProperty id="hname" name="Hospital Name" type="string">    </activiti:formProperty>
    <activiti:formProperty id="dname" name="Doctor Name" type="string">    </activiti:formProperty>
    </extensionElements>
    </startEvent>
    <userTask id="usertask1" name="Start Consulting with seema" activiti:assignee="seema">
    <extensionElements>
    <activiti:formProperty id="consult" name="consult" type="enum">
    <activiti:value id="true" name="true"></activiti:value>
    <activiti:value id="false" name="false"></activiti:value>      </activiti:formProperty>
    </extensionElements>
    </userTask>
    <endEvent id="end1"></endEvent>
    <boundaryEvent id="timer2" attachedToRef="usertask1" cancelActivity="true">
    <timerEventDefinition>
    <timeDuration>PT2M</timeDuration>
    </timerEventDefinition>
</boundaryEvent>
<userTask id="usertask2" name="Start Consulting with saurabh" activiti:assignee="saurabh">
<extensionElements>
<activiti:formProperty id="consult" name="consult" type="enum">
<activiti:value id="true" name="true"></activiti:value>
<activiti:value id="false" name="false"></activiti:value>
</activiti:formProperty>
</extensionElements>
</userTask>
<endEvent id="end2"></endEvent>
<sequenceFlow id="flow1" sourceRef="start" targetRef="usertask1"></sequenceFlow>
<sequenceFlow id="flow2" sourceRef="usertask1" targetRef="end1"></sequenceFlow>
<sequenceFlow id="flow4" sourceRef="usertask2" targetRef="end2"></sequenceFlow>
<sequenceFlow id="flow3" sourceRef="timer2" targetRef="usertask2"></sequenceFlow>
</process>

PT2M
据我所知,如果用户seema没有在2分钟内完成她的任务,那么该任务将从seema的挂起任务列表中清除,并应移动到用户saurabh的挂起任务列表中。但任务并没有转移到saurabh的待定任务列表中。 请帮帮我。
提前谢谢

查看Activiti文档:

持续时间。指定计时器在启动前应运行多长时间 激发时,可以将时间持续时间指定为的子元素 timerEventDefinition。所使用的格式为ISO 8601格式(如适用) BPMN 2.0规范要求)。示例(持续10分钟的间隔) 天):P10D


一旦用户任务启动,就会执行此指定的持续时间。此时间结束后,将触发计时器边界事件,您可以移动到下一个用户任务

我不想使用特定的日期和时间。我希望当任务分配给用户时,计时器将启动,如果用户没有在指定的时间内完成任务,则令牌将移动到工作流中指定的另一个节点。Ben的回答是正确的,当到达人工任务时发生的第一个事件是“分配”事件(请参阅此处了解原因:),您在边界计时器事件中定义的持续时间将是准确的。如果您需要更复杂的逻辑,那么使用TaskListener来操作连接的计时器。我使用了PT5M…现在计时器正在启动,但时间不正确…我定义了5分钟的时间,但任务在10-15秒内从usertask1中删除,并出现在usertask2..Plz中help@Seema你是怎么解决的?我也有同样的问题;应该是几分钟,但实际上会立即执行almsot。