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
rake queue:cleanup
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)
Try Yourself!
Copyright (c) 2008 Matthew Rudy Jacobs, released under the MIT license