Here is my needs:
Resque and beanstalkd don't do the enqueue_in.
There is a plugin (resque_scheduler) that does it, but I'm not sure of how stable it is.
Our enviroment is on amazon, and they rolled out the beanstalkd for free for who has amazon instances, that is a plus for us, but I'm still not sure what is the best option here.
We run rails 2.3 but we are bringing it to speed to rails 3.0.3 soon.
But what is my best choice here? Am I missing another gem that does this job better?
I feel my only option that actually works now is the resque_scheduler.
Edit:
Sidekiq (https://github.com/mperham/sidekiq) is another option that you should check it out.
Delayed Job uses your database as a queue to process background jobs. If your app has a high database load using DelayedJob may not be a good background queueing library for your app. To get started using Delayed Job you need to configure your application and then run a worker process in your app.
The most simple way to check whether delayed_job is running or not, is to check at locked_by field. This field will contain the worker or process locking/processing the job. Running Delayed::Job. where('locked_by is not null') will give you some results, if there are jobs running.
Restart Delayed Job on deploy You must remove that one now if you have it. It basically does the same thing that we will add now but without using upstart. We will now create a new file that will host our start, stop and restart tasks. Create a file at lib/capistrano/tasks/delayed_job.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With