我想在讨论改变时通知关注者。一个讨论有很多关注者。
现在我正在Discussion类中做这件事:
虽然这是异步的,但它非常慢、内存占用高,并且会在 Redis 和 Sidekiq 上创建依赖关系。我该如何将 self.followers 数组发送到 Mailgun 或另一个 API 并以此方式发送所有电子邮件?以下是我的实际邮件发送方法:
所以我想邮件方法在这里是关键。我该如何更改它以执行类似于这样的操作:
“我喜欢任何宝石,狒狒宝石看起来很有前途。”
“更新”
“每个人都告诉我要在工作程序中执行此操作。虽然我同意,但我注意到我的 SMTP 日志中有这个字段:”。
我猜我的信封可以有任意数量的目标。如果我的 SMTP 服务器正在处理所有工作,那么我为什么需要使用一个 worker?
self.followers.each do |follower|
DiscussionMailer.delay.new_reply_notification(user, reply) unless reply.user == user
end
虽然这是异步的,但它非常慢、内存占用高,并且会在 Redis 和 Sidekiq 上创建依赖关系。我该如何将 self.followers 数组发送到 Mailgun 或另一个 API 并以此方式发送所有电子邮件?以下是我的实际邮件发送方法:
def new_reply_notification(user, reply)
@user = user
@reply = reply
@reply_user = @reply.user
mail(to: user.email,
from: "arobot@gmail.com"
subject: "#{@reply_user.user_name} has just replied!")
end
所以我想邮件方法在这里是关键。我该如何更改它以执行类似于这样的操作:
mail(to: followers_aray,
from: "arobot@gmail.com"
subject: "#{@reply_user.user_name} has just replied!")
“我喜欢任何宝石,狒狒宝石看起来很有前途。”
“更新”
“每个人都告诉我要在工作程序中执行此操作。虽然我同意,但我注意到我的 SMTP 日志中有这个字段:”。
"envelope": {
"targets": "address@gmail.com",
"transport": "",
"sender": "arobot@gmail.com"
}
我猜我的信封可以有任意数量的目标。如果我的 SMTP 服务器正在处理所有工作,那么我为什么需要使用一个 worker?
to:
、cc:
和bcc:
都可以使用单个地址或者数组的形式。http://api.rubyonrails.org/classes/ActionMailer/Base.html#method-i-mail - Marian Theisen