SF Rails | Nov 20, 2014 | Ryan Clark
Raptor (Ruby) does 60,000 requests/second? If this is exciting in Ruby land then expectations of what a computer can do is really low.
— Kelly Sommers (@kellabyte) November 11, 2014
# app/workers/hard_worker.rb
class HardWorker
include Sidekiq::Worker def perform(name, count) puts 'Doing hard work' end end
HardWorker.perform_async('bob', 5)
bundle exec sidekiq
class ImageConversionJob
def work
# convert some kind of image here
end
end
resque = Resque.new
resque << ImageConversionJob.new
bin/resque work
# without delayed_job
@user.activate!(@device)
# with delayed_job
@user.delay.activate!(@device)
class Device
def deliver
# long running method
end
handle_asynchronously :deliver
end device = Device.new
device.deliver
ActiveJob::Base.queue_adapter = :inline # default queue adapter
class MyJob < ActiveJob::Base
queue_as :my_jobs
def perform(record)
record.do_work
end
end
MyJob.perform_later record # Enqueue job to be performed when queueing system is free.
MyJob.set(wait_until: Date.tomorrow.noon).perform_later(record) # Enqueue a job to be performed tomorrow at noon.
MyJob.set(wait: 1.week).perform_later(record) # Enqueue a job to be performed 1 week from now.
| | Async | Queues | Delayed | Priorities | Timeout | Retries |
|-------------|-------|--------|-----------|------------|---------|---------|
| Backburner | Yes | Yes | Yes | Yes | Job | Global |
| Delayed Job | Yes | Yes | Yes | Job | Global | Global |
| Qu | Yes | Yes | No | No | No | Global |
| Que | Yes | Yes | Yes | Job | No | Job |
| queue_classi| Yes | Yes | No* | No | No | No |
| Resque | Yes | Yes | Yes (Gem) | Queue | Global | Yes |
| Sidekiq | Yes | Yes | Yes | Queue | No | Job |
| Sneakers | Yes | Yes | No | Queue | Queue | No |
| Sucker Punch| Yes | Yes | No | No | No | No |
| Active Job I| No | Yes | N/A | N/A | N/A | N/A |
| Active Job | Yes | Yes | Yes | No | No | No |
Post.find(id)
Post.find_by_name(name)
Post.find_by(name: name)