Arbiter is a task-scheduler that resolves task dependencies. Given a set of tasks and their dependencies, Arbiter will run the tasks such that no task is run before a dependency has already successfully run.
This package is a Julia port of Arbiter.
Arbiter.jl is available in METADATA. To install:
To create a task:
import Arbiter: ArbiterTask task = ArbiterTask(name, func) # A task with dependencies dependent_task = ArbiterTask(name, func, (dependency1, dependency2))
To run tasks:
import Arbiter.Sync: run_tasks results = run_tasks(tasks)
Tasks cannot currently be run asynchronously. That feature is waiting on the WIP unified Channel interface for threaded and parallel Julia.
Differences From Python Arbiter
Names are all casted to
Symbols. Any value can be used as a name, but the
value returned in the results will be a
Nullables are used where Python may have had None, for type stability.
Various names have changed to become more Julian or avoid conflicts with existing functions or keywords.
Arbiter is provided under an MIT License.