0

这是我的代码

  users = User.all

  # Latency issues with connecting with Heroku and MC
  Gibbon::API.timeout = 120

  gb = Gibbon::API.new
  batch = []
  users.each do |user|
    batch << user.mail_chimp_information
  end

  puts gb.lists.batchSubscribe(id: "MC_ID_HERE", batch: batch, double_optin: false, update_existing: true)

上面的代码设置为在每晚 cron 上运行,批量订阅(或更新现有)用户到我的 MailChimp 帐户。我的应用程序在 Heroku 上运行,这会导致检索用户出现问题,然后在将它们发送到 MailChimp 之前遍历它们。如果我删除该Gibbon::API.timeout = 120行,则默认值为 15 秒并超时。

将用户信息批量上传到外部 API 的最佳做法是什么?目前手动设置超时是一种快速解决方法,但是随着我的用户群的增长,再次发生超时的威胁就越大。

4

1 回答 1

0

最佳做法是使用延迟的工作为您完成工作。

这个想法是您将每个作业设置为一次性(而不是多次)延迟作业,然后有一个处理订阅的后台队列。

常见的宝石有:

于 2014-01-06T02:50:36.193 回答