Dogtail

Elegant job processing in Swift

View the Project on GitHub bithavoc/DogTail

DogTail: Elegant Job Processing in Swift

Build Status

Easy and flexible job processing for OSX and iOS in Swift

Status: This library is a work in progress.

How it Works

DogTail is a job processing framework that works as an extendable pipeline of steps allowing exceptional control over the queue.

A queue tick usually executes the pipeline in the following order:

Step
Signals
Conditions
Consumer
Job <-> Task Execution
Analyzer

Signals

When emitted, signals wake up the queue and causes a tick to happen.

Conditions

On every tick, all the conditions check to see if the pipeline can proceed to process jobs.

Consumers

A consumer's only job is to provide the next task to be executed.

Jobs

Every consumer uses it's own way to provide and persist jobs, inside a job there's always a Task to be executed. Tasks can be synchronous, asynchronous or both at the same time.

Analyzers

If a job fails, analyzers will analyze the error(hah!) and determine what do to with it.

Installation

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate DogTail into your Xcode project using Carthage, specify it in your Cartfile:

github "bithavoc/DogTail" ~> 0.0

Run carthage update to build the framework and drag the built DogTail.framework into your Xcode project.

License

DogTail is released under the MIT license. See LICENSE for details.