Установка разных имен очередей в Resque Mailer

В моем приложении rails4 мне нужно отправлять электронную почту всем пользователям раз в неделю. Пользователи принадлежат к разным отделам. Мне нужно организовать отправку почты на основе названий очереди отдела. Но я не знаю, как дать имя очереди в качестве параметра при отправке почты. Все письма используют одно и то же имя очереди "weekly_user_activity_queue". Не устанавливается в очередь с именем отдела, как определено ниже. Как я могу этого достичь. Код показан ниже:

Gemfile:

  gem 'resque',:require => "resque/server" # for background processing
  gem 'resque_mailer' #for background mail sending

Приложение / отправители /user_activit_mailer.rb

  class UserActivityMailer  < ActionMailer::Base
  include Resque::Mailer

  @queue = :weekly_user_activity_queue

  def weekly_user_activities
    User.find_each do |user|
      @activities = user.get_user_activities
      email = @user.email

      @queue = user.get_department_name # Assigning department name as the queue name. Users with same department gets the email through the same queue.

      mail(to:email, subject: default_i18n_subject)
    end
  end
end

Пожалуйста помоги. Заранее спасибо.

1 ответ

Решение

Теперь приведенный ниже код сможет устанавливать имена очередей, определенные пользователем:

WeeklyUserUpdates.enqueue(tenant,user.id)

Определен метод enqueue в works/weekly_user_updates.rb

def self.enqueue(user_id)
  Resque::Job.create(select_queue_name(user_id),self,user_id)
end

def self.select_queue_name(userid)   
  queue_name = User.find_by_id(userid).department_name
end    
Другие вопросы по тегам