I've been using this module for many years now (probably about 3), but I've always had the same problem. Enabling the Mailchimp module can seriously slow down your site, as it needs to do remote API calls to load certain things.

This has been significantly improved with the new version, but after looking at the code, I'm still finding a bunch of places where API calls are being made, even when `mailchimp_cron` = TRUE. In my opinion, no API calls should ever be made, when this setting is enabled.

The specific instance I'm talking about now refers to during registration in hook_user $op = 'insert' and `mailchimp_user_register` = TRUE. This is the instance where you enable mailchimp on the registration form. After it's submitted, the mailchimp module will attempt to `_mailchimp_subscribe_user()` which does call the remote API.

Should the Mailchimp API be down upon registration, this I believe will cause the page to hang, and confuse someone who has just registered.

I believe they should just queue'd for cron and registered at that point.

I understand waiting until cron to sync things like this and emails may cause some problems, but in my opinion it's better to lose some email address signups, then potentially slow down your entire site and lose signups / readers.

--

The more important problem for me, is I'm trying to create a ubercart signup upon checkout module, which NEVER calls the mailchimp API until cron. Currently all the ones that exist, cause problems as they call the API and if it's down (or even up) can slow down my entire site and I could lose sales.

Ideally I'd love to use this `_mailchimp_subscribe_user()` to do so, but it seems to call the remote API and this could cause a person who's purchasing something on my site to get scared away and I'd lose money.

Ideally this function would check the `mailchimp_cron` variable and if it's set simply queue the user for batch. Or perhaps a proper `mailchimp_subscribe_user()` function could be made (notice no leading underscore) which would check the `mailchimp_cron` variable and queue the user or try to register right away depending on how the `mailchimp_cron` variable is set.

Comments

nrackleff’s picture

Status: Active » Closed (won't fix)

“And now our watch [for support of the 6.x version of the MailChimp module] has ended…” With the end of Drupal 6 support, I’m sad to say we too must turn the page.

Fret not! The 7.x-4.x and 8.x versions come highly recommended. Both are using Mailchimp’s new API 3.0 and are being actively maintained. “What is dead may never die, but rises again, harder and stronger!”