Sidekiq Rails 4.2 Nutzen, Aktiv, Arbeit oder Arbeiter? Was ist der Unterschied

Dies ist meine erste Bearbeitung jobs asynchron ich die Umsetzung Sidekiq für die Hintergrundverarbeitung in meiner app. Ich werde es für Erinnerungs-E-Mails und in-app-Benachrichtigungen. Ich bin verwirrt, ob ich den Active Job, einen job zu erstellen, der sendet eine E-Mail oder ein Sidekiq-Worker eine E-Mail senden. Sie scheinen das gleiche zu tun, und Rails 4.2 Aktive Job scheint sehr neu...ist es ersetzt die Notwendigkeit für ein Sidekiq-Arbeiter?

Unten ist die gleiche senden eine mailer-code mit einem Aktiven Job zu job und ein Sidekiq-Arbeiter. Ich bin mit Wann auch immer Juwel für die Planung.

my_mailers.rb

class MyMailers < ActionMailer::Base

  def some_mailer(r.user_id)
    @user = User.find(r.user_id)
    mailer_name = "ROUNDUP"
    @email = @user.email
    @subject ="subject text"
    mail(to: @email, 
      subject: @subject,  
      template_path: '/notifer_mailers', 
      template_name: 'hourly_roundup.html',
      )
  end
end

Mit einem Sidekiq "Arbeiter"

some_worker.rb

class SomeWorker
  include Sidekiq::Worker

  def perform()
    @user = User.all
    @reminders = @user.reminders.select(:user_id).uniq.newmade
    @reminders.each do |r|
      MyMailers.some_mailer(r.user_id).deliver_later
    end
  end

end

Mit einem Active Job "Job"

some_job.rb

class SomeJob < ActiveJob::Base
  queue_as :mailer

  def perform()
    @user = User.all
    @reminders = @user.reminders.select(:user_id).uniq.newmade
    @reminders.each do |r|
      MyMailers.some_mailer(r.user_id).deliver_later
    end
  end

end

Beide Beispiele in meinem scheduler, Wenn
Zeitplan.rb

require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
set :path, Rails.root
set :output, Rails.root.join('log', 'cron.log')

#using a worker
every 1.day, :at => '4:30 am' do
  runner SomeWorker.perform_async
end

#using a job
every 1.day, :at => '4:30 am' do
  runner SomeJob.perform_async
end
Schreibe einen Kommentar