dummy-link

Arbiter

A task-runner that automatically resolves dependency issues

Readme

Arbiter.jl

Build Status Build status codecov.io

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.

Installation

Arbiter.jl is available in METADATA. To install:

Pkg.add("Arbiter")

Usage

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 Symbol.

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.

License

Arbiter is provided under an MIT License.

First Commit

08/19/2015

Last Touched

over 1 year ago

Commits

18 commits

Used By: