Task: An abstract concept of some work to be done.
- CommandTask: A Task that executes an arbitrary shell command.
- Job: A Task which executes a group of other Tasks. This is done by constructing a directed graph using task Nodes and Dependencies.
Schedule: A definition of when a Task is to run (i.e., start an Instance of it).
Scheduler: A process which uses schedules to create and enqueue Instances at the appropriate time.
Instance: An execution of a Task.
Queue: An abstract concept of a distributed queueing system to disperse instances with.
- DBQueue: Queue implemented using the database.
- SQSQueue: Queue implemented using SQS.
Executor: A process which continually pops instances off a specific queue and starts them.
Note: Norc requires at least one Scheduler total and at least one Executor per queue to be running in order to function. Multiple Executors are key to scaling the system for heavy workloads.
A Task has at least one Schedule which is used by a Scheduler to create Instances which go in a Queue and are then popped and executed by Executors.