Skip to content

matthewrudy/rudeq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7cfec54 · Jul 24, 2013

History

43 Commits
Feb 12, 2009
Jul 24, 2013
Jul 25, 2008
Jan 19, 2009
Jul 24, 2013
Jul 17, 2008
Jul 24, 2013
Jul 24, 2013
Jul 24, 2013
Jun 19, 2008
Jul 24, 2013
Jul 24, 2013
Jun 9, 2009

Repository files navigation

RudeQ

A simple DB based queue, designed for situations where a server based queue is unnecessary.

INSTALL

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

USAGE

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