A simple DB based queue, designed for situations where a server based queue is unnecessary.
This plugin requires Rails 2.* currently, and has only been tested on MySQL.
On rails 2.1 you can install straight from github:
ruby script/plugin install git://github.com/matthewrudy/rudeq.git
Else just check it out into your plugins directory:
git clone git://github.com/matthewrudy/rudeq.git vendor/plugins/rudeq
After you've installed it just run
rake queue:setup matthew@iRudy:~/code/jbequeueing $ rake queue:setup (in /Users/matthew/code/jbequeueing) exists app/models/ exists spec/fixtures/ exists spec/models/ create app/models/rude_queue.rb create spec/fixtures/rude_queues.yml create spec/models/rude_queue_spec.rb exists db/migrate create db/migrate/029_create_rude_queues.rb
and you're done. Fully tested, fully indexed... BOOM!
Now run migrations, start up a console, and;
RudeQueue.set(:queue_name, RandomObject) RudeQueue.get(:queue_name) RudeQueue.fetch(:queue_name) do |data| process(data) end
And, to keep the queue running fast, set up a cron job to run
the cleanup will remove any queued items which have been processed longer than an hour ago.
rake queue:cleanup CLEANUP_TIME=86,400
will clear processed queue items processed longer than 86,400 seconds ago (1 day)
Copyright (c) 2008 Matthew Rudy Jacobs, released under the MIT license