Details
-
Type:
New Feature
-
Status:
Code Review
-
Priority:
Critical
-
Resolution: Unresolved
-
Affects Version/s: 1.0
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Request Controller:Albers, Stephan
-
External Supervisor:Please select
-
Executing Programmer:Antonicheva, July
-
Current Estimated Hours:1
-
Ext Project Id:IBMQDM-01.1
Description
Currently in Grailsflow there is a special nodes executor - NodeActivatorJob. It starts periodically (each 20 secs by default), looks for "active" nodes, iterates through them and consequentially executes each node. As the result if one node executes for 5 minutes other nodes will "wait" that time.
We should have possibility to define node as 'asynchronous' and execute it in a separate thread. For this reason the following things should be done:
1. Allow to define a boolean attribute "asynchronous" per node definition.
If the attribute isn't specified, the node is synchronous, if the attribute specified as "asynchronous: true" the node should be executed asynchronously.
2. Adjusted NodeActivatorJob - if the executed node is asynchronous, a new thread should be started for the execution.
Each newly created thread should have reasonable name. The number of parallel threads should be restricted to prevent memory problems; the number should be configurable.
The tests should be adjusted too.