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/
Tags: asyncronous processing · Ruby On Rails · starling · worklingNo Comments











0 responses so far ↓
There are no comments yet.