Working with EngineRunTaskPerformer
For years, RTVN has relied on the UI calling the Task Writer or Task Generator directly. This was limited by the standard UI limit of 3 minutes – if the tasks cannot be created in this amount of time then the UI would time out and the task generation would be terminated. This is find for small incremental runs or for demos but for running the engine in earnest on larger instances it was unusable.
Platform today generators a EngineRun task in the GridTasks table. This EngineRun task calls EngineRunTaskPerformer which in turn calls for the engine's Factory to find the appropriate Task Writer or Generator. This effectively separates the UI thread (that only needs to wait to create 1 task) from the Task Writer or Task Generator that has more time.
Note that the EngineRun task is just like anyother task. It has an ATTEMPT_NODE and ORIGIN_NODE to tell you where the EngineRun task originated (i.e. the UI node that the user clicked the Run Engine button) and the node that actually ran the Task Generator or Task Writer (useful finding the logs for this process in the event that task generation did not proceed as expected).
POSSIBLE PROBLEM - Tasks are never created:
EngineRunTaskPerform is just a task performer and not an engine. It requires dvce-app-config.xml with the EngineRun entry in it. This entry has to be in the file. On boot up the server will then know to create a listener for this task. Without this entry then no listener will be created. No listener means the NO engine will ever create Tasks.
NOTE: I believe the EngineRunTaskPerformer is limited to 10 minutes