これが私のコードです
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)
上記のコードは、ユーザーを私の MailChimp アカウントに一括登録 (または既存の更新) する夜間の cron で実行するように設定されています。私のアプリは Heroku で実行されているため、ユーザーを取得し、MailChimp に送信する前にユーザーをループ処理する際に問題が発生します。この行を削除するとGibbon::API.timeout = 120
、デフォルトは 15 秒でタイムアウトになります。
外部 API へのユーザー情報のバッチ アップロードに関するベスト プラクティスは何ですか? タイムアウトを手動で設定することは、今のところ簡単な修正ですが、ユーザーベースが拡大するにつれて、タイムアウトが再び発生する可能性が高くなります.