armcburney / TaskQueue

ruby implementation of a simple dispatch queue

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Twitter: @taquitos License

TaskQueue

A ruby implementation of a simple dispatch queue using procs

Currently, TaskQueue only has api for dispatching tasks asynchronously.

Example

# Create a queue with as many workers as you want or 1 for a serial queue 
queue = TaskQueue.new(name: 'my concurrent queue', number_of_workers: 5)
task = Task.new(work_block: proc { 
  # some work to be done
})
queue.add_task_async(task: task)
# Or don't supply the number of workers and you'll only get 1, making it a serial queue 
queue = TaskQueue.new(name: 'my serial queue')
task = Task.new(work_block: proc { 
  # some work to be done
})
queue.add_task_async(task: task)

Run tests

bundle exec rspec

About

ruby implementation of a simple dispatch queue

License:MIT License


Languages

Language:Ruby 100.0%