1.4 KiB
Entities
Worker
Worker encapsulates logic related to certain area in solar. Current we have next workers:
- Scheduler
-
Correctly initates execution plans and updates state of tasks.
- Tasks
-
Execute tasks scheduled by Scheduler worker
- System log
-
Updates system log e.g. commits and moves log item from staged log to history, or in case of error updates log item as erred
Executors
Each executor module should provide:
- Executor
-
Executor responsible for processing events and handle them via given worker. Concurrency policies is up to the executor implementation.
- Client
-
Client communicates with executor
In current version of Solar we are using executor based on Push/Pull zeromq sockets, and gevent pool for concurrent processing of events.
Subscriptions
Each public method of worker is subscribable, in current version 4 events are available to subscribers.
- on_success
-
Called in the case of successful execution, provides context, result and event arguments
- on_error
-
Called in the case of error, prorives context, error type, event arguments
- before
-
Called before method execution, provides only context
- after
-
Called after method executuon, provides only context
To subscribe use:
worker.method.on_sucess(callable)
Additionally each worker provides for_all descriptor which allows to subscribe to all public methods:
worker.for_all.before(callable)