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