0.0
No commit activity in last 3 years
No release in over 3 years
MobSpawner manages worker threads that can run arbitrary commands and report results. Unlike distributed queues, MobSpawner is self-contained and perfect for small batch scripts that need to run multiple independent jobs.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

MobSpawner

MobSpawner manages worker threads that can run arbitrary commands and report results. Unlike distributed queues, MobSpawner is self-contained and perfect for small batch scripts that need to run multiple independent jobs.

Documentation is on rubydoc.org.

Usage

The simplest usage of MobSpawner is:

commands = ["rvm install 1.8.6", "rvm install 1.9.2", "rvm install rbx"]
MobSpawner.new(commands).run

The above will attempt to run the 3 commands concurrently across the default of 3 worker threads. By default commands do not report output; to get command output, use callbacks discussed in the next section.

For more information on how to initialize a spawner, see the {MobSpawner} documentation.

Callbacks

In addition to simply running worker threads, you can also receive reports about each worker's execution results using callbacks. To setup a spawner with callbacks, use {MobSpawner#before_worker} and {MobSpawner#after_worker}:

spawner = MobSpawner.new("command1", "command2", "command3")
spawner.before_worker do |data|
  puts "Worker #{data[:worker]} about to run #{data[:command].command}"
end
spawner.after_worker do |data|
  puts "Worker #{data[:worker]} exited with status #{data[:status]}"
  puts "Output:"
  puts data[:output]
end
spawner.run

License & Copyright

MobSpawner is licensed under the MIT license, © 2012 Loren Segal