After a big run of subscriptions this plugin has more than doubled the scheduled actions and doubled the time it takes to complete the subscription processing. Each time a subscription changes, creates an order, updates order status and updates subscription status there is more MailChimp_WooCommerce_Single_Order actions being created, it would be better if they were delayed by a day after last order edit at least and I don’t even want them for subscriptions.
-
This reply was modified 10 months, 4 weeks ago by
technicalx.
Hi @technicalx, thanks for reaching out. A couple of quick questions:
- What version of the plugin are you using?
- Do you have multiple webhooks in your Mailchimp Audience? You can find this by going to your Audience -> Manage Audience -> Settings -> Webhooks
- What subscription plugin are you using? And what version of it?
Thanks!
Just one webhook
- WordPress 6.5.3
- Woocommerce Version 8.8.3
- Mailchimp for WooCommerce Version 4.0.1
- Subscriptions Version 5.9.1
I’ve also noticed hundreds of scheduled obj_id
entries matching each subscription ID, 402 for one I am looking at now. So now my subscriptions totals reads like this, with 7000 subscriptions and 2000 processed last week, the totals of actions have climbed vastly. So hundreds of thousands of unneeded(?) actions.
BTW these actions are triggered for any subscription edit.
Scheduled Actions
All (698033) | Cancelled (324973) | Complete (356057) | Failed (9709) | Pending (7294)
402 matches for below line
MailChimp_WooCommerce_Single_OrderComplete
'obj_id' => 33192
mc-woocommerce Non-repeating
The logs for these are all the same,
2024-05-06T01:43:47+00:00 NOTICE action_scheduler.queue_job :: MailChimp_WooCommerce_Single_Order starts in 90 seconds :: obj_id 33192
2024-05-06T01:46:05+00:00 NOTICE filter :: Order 33192 was skipped by the filter
-
This reply was modified 10 months, 3 weeks ago by
technicalx.
-
This reply was modified 10 months, 3 weeks ago by
technicalx. Reason: added webhooks count
More notes: this code looks like it will retry forever every 30 seconds. Is that correct? crons are every minute. Shouldn’t it give up eventually?
edit: ignore this, I found the code where I think it tries only 5 times then logs error, but since I have some IDs with 400 entries i’m not sure it’s working. Anyway probably set delay to 5 minutes instead.
public function retry( $delay = 30 ) {
$job = $this;
if (null == $job->attempts) $job->set_attempts(0);
$job->set_attempts($job->get_attempts() + 1);
mailchimp_as_push($job, $delay);
}
-
This reply was modified 10 months, 3 weeks ago by
technicalx.
@technicalx thanks for reaching out. If you would like to do any sort of job queue filtering you can use this filter and that should allow you to block the job with any custom logic you would like to run.
If you are trying to customize the delay of the job, that’s not currently in the plugin as an available filter but it’s actually not a bad idea at all. I can see about putting that in on our next release. These things are very much custom to the store owners requirements so I would feel fine adding that with some sensible defaults. The current default delay on order updates is set to 90 seconds after an update.
We will update the changelog and provide a wiki on using that feature as soon as it’s live.
As long as it cancels pending updates whenever a new update is done I think that might be ok, I’d set my delay to 12 hours and hopefully it usually would run overnight.
Also there’s no way to avoid syncing coupons, which seems to send the coupon codes to mailchimp – I don’t see this being used in mailchimp and I’d rather not send this data.
Hello @technicalx @ryanhungate @khungate
I’m experiencing the same issue. Have you been able to solve this?
Hi @quadlayers thanks for reaching out. Please open up a new ticket in Github if you are experiencing issues using this filter found in our Wiki.
Hello @khungate
The issue is related to this schedule mailchimp aciton: MailChimp_WooCommerce_Single_Order
I have more than 50000 pending and 50000 past-due actions. I’ve tried run them via CLI command but the execution is very slow: around 1 per second.
More failures with MailChimp_WooCommerce_Single_Order cron
action failed via WP Cron: Call to undefined method WC_Shipment_Tracking_Actions::get_formatted_tracking_item()
Yes I do have a shipment tracking plugin. No I cannot disable it.
-
This reply was modified 4 months, 3 weeks ago by
technicalx.
-
This reply was modified 4 months, 3 weeks ago by
technicalx.
Subscription processing is now 5 hours overdue due to this plugin causing so many immediate sync jobs and all the failures retrying 4-5 times.
-
This reply was modified 4 months, 3 weeks ago by
technicalx.
@technicalx do you happen to have the full stack trace there as to where it triggers from this job class? I’m sure we can figure out a way to at a minimum, patch this for you while we wait for the next release. Be glad to help.
Have you found any solution to this problem?