Specifications - nicolasramy/tada-engine GitHub Wiki
Architecture
client: Hey server, this is an empty request (I'm available)
server: I'll took a look in cache for available task and if I have one, I'll set it to PENDING
client: OK, nice, I will try to execute your task, but wait, I may not have place in my pool
server: OK you are RUNNING the task or WAITING it for place in your pool
client: I have finished it's a SUCCESS or a FAILURE
server: I update the status, next request please
Task
- input
- output
- task name
- delays
- expires
- group
- pipeline_id
Workflow
- WAITING - Request placed on queue (or other kombu message bus/transport) but not yet consumed.
- PENDING - Worker accepted request and is pending to run using its executor (threads, processes, or other).
- FAILURE - Worker failed after running request (due to task exception) or no worker moved/started executing (by placing the request into RUNNING state) with-in specified time span (this defaults to 60 seconds unless overridden).
- RUNNING - Workers executor (using threads, processes…) has started to run requested task (once this state is transitioned to any request timeout no longer becomes applicable; since at this point it is unknown how long a task will run since it can not be determined if a task is just taking a long time or has failed).
- SUCCESS - Worker finished running task without exception.
Task Events
- task-sent
- task-received
- task-started
- task-succeeded
- task-failed
- task-rejected
- task-revoked
- task-retried
Job
- input
- output
- task name
- delays
- expires
- group
Minion
Minion Events
- minion-online
- minion-heartbeat
- minion-offline