Contents (4)
Action Scheduler runs background work for WooCommerce and many plugins. When its queue falls behind, the symptoms are scattered: late emails, subscriptions that don’t renew, and syncs that are hours behind.
Check the state of the queue
Under Tools → Scheduled Actions, filter for pending actions with past dates. If that number keeps growing, the runner can’t keep up.
Run it manually, in small batches
wp action-scheduler run --batch-size=50 --batches=10
wp action-scheduler run --hooks=woocommerce_deliver_webhook_async
Running the queue from WP-CLI removes the dependency on WP-Cron and site traffic, and shows errors directly in the terminal.
Common causes
- WP-Cron is disabled and no real server cron is configured.
- One action throws a fatal error and is re-queued every time.
- The
actionscheduler_*tables are bloated with millions of old rows.
Deleting rows straight from the tables without understanding dependencies can leave an order or subscription half-processed. Find the cause first.
Prevention
A real server cron running wp cron event run --due-now every minute, plus periodic cleanup of completed actions, keeps the queue healthy.
$ ./request_review
Facing the same problem in your own store?
Senior WordPress and WooCommerce backend engineering for complex production problems.
Request a Technical Assessment
## Comments