Hi Nicolas,
On 6/9/06, Nicolas Modrzyk <[email protected]> wrote:
Hi All,
This is more for John:
When we have a time based workflow, if the engine gets killed, then
restarted how do we flush the dates that are expired ?
Does OpenWFE take care of this as is ?
When the engine restarts, it takes care of triggering the stuff that
is expired.
Which expression are you using ? <sleep> ? If using <sleep until="x"
/>, upon restart the engine will resume after the <sleep/> as it
expired.
Within a workflow, if an activation failed, because the public server
was down, or because of a network time out, how can we force a
command to re-execute itself ?
You could do something like :
<loop>
<participant ref="command-activate" />
<if test="${f:success} == true"><break/></if>
<sleep for="1h10m" /> <!-- 1 hour 10 minutes for example -->
</loop>
(I was lazy, I didn't write a nice <until/>)
Should we write a retry command that retry the command a few times
before giving up ? ( I don't think this solves a lot, but it looks
like it's turning into a requirement here)
You could wrap this loop with a subprocess :
<sequence>
...
<activate/>
...
</sequence>
<process-definition name="activate">
<loop>
<participant ref="command-activate" />
<if test="${f:success} == true"><break/></if>
<sleep for="1h10m" /> <!-- 1 hour 10 minutes for example -->
</loop>
</process-definition>
maybe putting a counter in this 'activate' subprocess wouldn't be a
bad idea (after 10 tries, give up and send email).
HTH, best regards,
--
John Mettraux -///- http://jmettraux.openwfe.org
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/magnolia/developer.html
----------------------------------------------------------------