在 Resque mailer 中设置不同的队列名称
Setting different queue names in Resque mailer
在我的 rails4 应用程序中,我需要每周向所有用户发送一次电子邮件。用户属于不同的部门。我需要根据部门明智的队列名称来组织邮件发送。但是,我不知道如何在发送邮件时将队列名称作为参数。使用相同队列名称 'weekly_user_activity_queue' 的所有邮件。未设置为如下定义的部门名称队列。我怎样才能做到这一点。代码如下:
gemfile:
gem 'resque',:require => "resque/server" # for background processing
gem 'resque_mailer' #for background mail sending
app/mailers/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
请帮忙。提前致谢。
现在,下面的代码将能够设置用户定义的队列名称:
WeeklyUserUpdates.enqueue(tenant,user.id)
在workers/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
在我的 rails4 应用程序中,我需要每周向所有用户发送一次电子邮件。用户属于不同的部门。我需要根据部门明智的队列名称来组织邮件发送。但是,我不知道如何在发送邮件时将队列名称作为参数。使用相同队列名称 'weekly_user_activity_queue' 的所有邮件。未设置为如下定义的部门名称队列。我怎样才能做到这一点。代码如下:
gemfile:
gem 'resque',:require => "resque/server" # for background processing
gem 'resque_mailer' #for background mail sending
app/mailers/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
请帮忙。提前致谢。
现在,下面的代码将能够设置用户定义的队列名称:
WeeklyUserUpdates.enqueue(tenant,user.id)
在workers/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