Version: 9.9.0
Engine

Table of contents

Introduction

The engine is in charge to :

- edit
- check consistency
- schedule 
- execute

graphs of execution independently from the context (Runtime) the graph is destined to run.

Basic concepts in YACS::ENGINE

The understanding of YACS::ENGINE implementation needs a good knowledge of the basic concepts (Engine concepts):

Executor

The executor is in charge to run a graph of execution. Executor is TOTALLY independant from Node and Port implementation. The only APIs seen from YACS::ENGINE::Executor are YACS::ENGINE::Scheduler and YACS::ENGINE::Task. So, from the Executor point of view, a graph of execution is a scheduler scheduling tasks. The responsability of executor is to launch, concurrently or not, tasks selected by scheduler and to notify to tasks and to the scheduler what it is going to do and what happend during tasks' execution. There are several launching mode in executor. Here the common modes :

  • launch tasks until scheduler declares that all is finished.
  • launch tasks until a given task is upon to be launched.
  • launch tasks one by one. (step by step)