代码之家  ›  专栏  ›  技术社区  ›  Kyle

使用sidekiq、redis发送电子邮件

  •  0
  • Kyle  · 技术社区  · 7 年前

    我有一个关于ruby中sidekiq的问题。 我正在建立一个发送活动电子邮件的系统,每个活动发送1万到5万封电子邮件。

    receivers.each do |receiver|
        begin
          email_sending_log = EmailSendingLog.create(email: 
            receiver["email"], sender: sender["email"], content: 
            content["value"], status: "REQUESTED")
            EmailWorker.perform_async(adapter, receiver, sender, content, subject, email_sending_log.id.to_s)
        rescue Exception => e
        end
    end
    

    你们有什么想法来加速我的系统吗? 或者举个例子来加速sidekiq,redis?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Pavel Mikhailyuk    7 年前

    发送竞选电子邮件是一项相当标准的任务——一个人必须发送N封电子邮件(你的N=10k.50k)。

    两者都不好:

    • 长N环容易出错并强制关闭(应用程序部署 等等)-许多消息可能会被发送两次,许多消息可能会丢失。

    批次。 使用M个作业,每个作业有K个循环,其中M*K=N。例如:100多个作业,每个作业有100个循环。尝试不同的M、K,然后选择最适合你的。这不是一颗银弹,而是相反方向的黄金分割。

    电子邮件发送服务。 marketing emails