From 78e3c37f49cc521ce51344203fd451fc621810a8 Mon Sep 17 00:00:00 2001 From: Markus Graf Date: Mon, 25 Apr 2016 13:11:58 +0200 Subject: [PATCH] using batch of 20 to prevent timeouts --- lib/mail_chimp_batch_update.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/mail_chimp_batch_update.rb b/lib/mail_chimp_batch_update.rb index f3ff804..e88a953 100644 --- a/lib/mail_chimp_batch_update.rb +++ b/lib/mail_chimp_batch_update.rb @@ -1,11 +1,16 @@ class MailChimpBatchUpdate def self.update_all(api_key, list_id) subscribers = [] - Supporter.each do |supporter| + mailchimp = Mailchimp::API.new(api_key) + + Supporter.each_with_index do |supporter, index| subscribers.push(subscriber supporter) + if index.modulo(20) == 0 + mailchimp.lists.batch_subscribe(list_id, subscribers, false, true, false) + subscribers = [] + end end - mailchimp = Mailchimp::API.new(api_key) mailchimp.lists.batch_subscribe(list_id, subscribers, false, true, false) end