Using Starling, Workling with Ruby on Rails
For the project we are working on for Teachers Without Borders we need a reliable asynchronous way to process tasks. There are a myriad of ways to do this and if you aren't careful you'll spend weeks second guessing yourself while investigate every possible option. Not that I would know that from experience.
We chose Starling and Workling as our solution. Starling is a message queue that uses memcache. It was built by the guys at Twitter and released as open source. I bet it scales.
Workling is a great plugin built by a couple of guys working on boomloop.com It makes using Starling a bit easier especially when it comes to consuming messages from the queue.
There are a few blog posts around that describe how to get stuff up and running. Other than that the documentation is a bit sparse. I have to believe that will change over time. I am throwing my own links and experience into the mix so I don't forget how to do this.
First get the gems you need to run starling:
sudo gem install starling
sudo gem install memcache-client
Get the working plugin
git clone http://github.com/purzelrakete/workling/tree/master/Changes
# Get starling and working going with:
#
# Fire up starling - this isn't in daemon mode. Add a -d for that.
# starling -P tmp/pids/starling.pid -q tmp/starling
#
# Next fire up the server
# script/server
#
# Get workling going
# script/workling_starling_client start
A few more resources
http://www.williambharding.com/blog/rails/starling-update-from-the-horses-mouth/
http://davedupre.com/2008/03/25/ruby-background-tasks-with-starling/


Justin Ball is the CTO for OERGlue.com a new startup trying to make it easy to mashup the web to create authentic learning experiences. He's been a software consultant and entrepreneur in the education space for more than 10 years. In the rare moments when he isn't writing code, talking about code or measuring his code productivity in profanity per hour, you can find him on his bike in the mountains or on the roads surrounding Cache Valley. 









