Here is my needs:
For my projects I will feel very comfortbale with collectiveidea/delayed_job in rails2 and 3. I don't know beanstalkd, but i will try it soon :-). I have followed the suggestions in the resque documentation. I will report it.
Resque vs DelayedJob
How does Resque compare to DelayedJob, and why would you choose one over the other?
If you're doing Rails development, you already have a database and ActiveRecord. DelayedJob is super easy to setup and works great. GitHub used it for many months to process almost 200 million jobs.
Choose Resque if:
Choose DelayedJob if:
Choose Beanstalkd if:
In no way is Resque a "better" DelayedJob, so make sure you pick the tool that's best for your app.
A nice comparison of queueing backend speed:
enqueue work
-------------------------------------------------
delayed job | 200 jobs/sec 120 jobs/sec
resque | 3800 jobs/sec 300 jobs/sec
rabbitmq | 2500 jobs/sec 1300 jobs/sec
beanstalk | 9000 jobs/sec 5200 jobs/sec
Have a nice day!
P.S. There is a RailsCast about resque, Delayed Job (revised version) and Beanstakld. Have a look!
P.P.S. My favourite choiche is now Sidekiq ( very Simple, Fast and efficient for simple jobs ), have a look at this page for comparison.
Amazon Beanstalk isn't Beanstalkd.
Beanstalkd - the queue - does have delayed jobs, that won't be reserved out of the queue until the given number of seconds have passed. If that is what Enqueue_in(10.hours, ... )
means, then it's just syntactic sugar to calculate the number of seconds, and not make a job available till then.
Just a small note: delayed_job 3.0+ supports named queues
object.delay(:queue => 'tracking').method
Delayed::Job.enqueue job, :queue => 'tracking'
handle_asynchronously :tweet_later, :queue => 'tweets'