Pause Flow OO Task with Wakeupscheduler

Idea ID 2748345

Pause Flow OO Task with Wakeupscheduler

Brief Description

Currently when you would like to have a flow waiting for a bit longer period of time you would use a Sleep action in the Flow. the Big disadvantage with this is that the Flow is blocking an Execution Thread on the respective RAS. on a loaded environment with potentially varying load patterns with a lot of flows that use the Sleep action this can result is slowing down environment as Flows are fighting for remaining Threads that are not in Sleep.

suggest to introduce a Task in OO that basically puts the Flow into Paused or similar state.

the advanatage of Paused state is the Flow is removed from the RAS/execution handling.

at the same time wakeup time or pause time in seconds must be given to the Task.

At the specified Time the Flow will be resumed.

Just increasing Execution threads is not an option as other loadscenarios would then overload the RAS due to the uneven CPU/RAM/Execution thread balance.

 

Benefits / Value -Explain why is this important? (When used, by which role, and benefits / value)-

This allows OO to be used in larger scale environments where certain longer running Flows need a pause state that does not consume system resources while in the paused state.

Supporting scalability and also proper use of resources.

also probably any autoscaling function of OO in CDF can be impacted by above issue as the pure CPU load on a RAS does not increase when all Execution threads are in sleep mode.

Design details

-Explain how would you like this idea designed / implemented

an OO Central Background thread watching Wakeuptimer for every centrally paused flow.

additionally that could be also used for UI pausing (specifying a wakeup time)

additionally an OO Action/Task that can be used in a flow to put Flow into Paused mode while still finishing this task. (critical is here correct timing between Central putting Flow to pause and the step finishing). only using OO APi within the Flow to put itself to pause is not sufficent as you cant rely that OO pauses the Flow exactly after this step which means that additional steps would be executed afterwards without pause which are only intended to be executed after wakeup.

This could be implemented as an extensible pause solution supporting similar problem scenarios like "SA Wait for Job"

Tags (1)
12 Comments
Lieutenant Commander
Lieutenant Commander

Hello Daniel, 

Thanks for you very quick answer. We are trying to understand all of the capabiliities of the OO Scheduler before coding the solution. 

We are still thinking how to implement the solution. 

For our use case, we need to develop  flow (like a master flow) which will start several other flows (probably by API I dont know yet, we are still duscussing) and then, the master flow go to sleep for certain time (hours, days, sometimes weeks). 

In order not to use sleep, I wanted to use the PAUSE feature, and then wake-up the flow. (Probably by API call, I think this is possible? ).

But the Scheduled Wake-up it seems very promossing to me, and it will save us dev, and some checks. 

I discussed this morning with some members of our team, and they share the same opinnion. 

Best regards, 

TG

Vice Admiral
Vice Admiral

Hi TG,

you can do it as you described as of to day. you can put a Flow at Pause with API (you will need to have a user that is allowed to do this. Then you can externaly wake the flow up (resume) it again e.g. by using a scheduler and another wakeup flow… but as described in the thread there are some catches to it.....

One critical is: you can not take for granted that when you pause the Flow by him Self…. so in the flow you call the OO Central API to Pause him self, that the Flow exactly stops at this step. i observed several Occasion where it did a few steps after the Pause before it actually paused…. which means you need to implement a safety loop afterwards.

another challenge you need to differentiate for operators what is an intended Paused flow and what are other paused flows they need to act on e.g. missing RAS in Workergroups..etc.

Regards, Michael

The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.