I wrote my own thing with rufus-scheduler. Nothing on the market did
what I wanted. I am quite happy with it and it was pretty easy to do.
I use it as a combination scheduler and background service. It's
persistent and it puts the result of every run into a database linked
to the schedule linked to the user linked to the cilent.
I used eventmachine for the networking.
Since you already have a database why not use that as a queue?
If you are thinking about a server I would also consider using gearman
or even XMPP. I was able to use google apps for domains as a XMPP
server to get a couple of ruby clients talking to each other. Since
google is going to be pushing wave seems like they are going to devote
a lot of resources to it.