If you’re running WooCommerce 3.6 or later (and I truly hope you are), and have a large product catalog, you might have ran into the issue where this admin notice is lingering longer than you think it should. This can cause issues with filters on the front end of a shop being inaccurate or non-functional, as well as the noted sorting and reporting discrepancies.
As the message indicates, for this install, we’ve disabled the default WP cron and run a scheduled server cron via wp-cli. This helps offload these sorts of processor intensive tasks from happening when users load your website, but it can sometimes mean queues such as this one get a little backed up. I’ve often found this issue on sites that use bulk editing plugins to make thousands of product updates at once or run large product imports.
If you click on the link to manually run queued updates, you’ll arrive at the WooCommerce -> Status -> Scheduled Actions page which might look something like the following with hundreds (or thousands) of Pending status actions:
You could then proceed to click Run on each of the hundreds of actions, but that would take hours and will likely result in errors such as “Maximum simultaneous queues already in progress (1 queue). No additional queues will begin processing until the current queues are complete.“
How to update Product Lookup Tables via wp-cli
To process this backlog of queued tasks, SSH into your site and run the following command:
/path/to/wp-cli/wp action-scheduler run --path=/www/public --url=https://example.com
Note that you’ll need to adjust the command for the path to your specific wp-cli directory, the path to your WP site installation root, and the site URL.
Upon successfully executing this command, you’ll see the action-scheduler begin to work through the pending tasks in batches of 100:
It will automatically continue to process these batches until there are no pending actions. You can even monitor the overall progress by refreshing the WooCommerce -> Status -> Scheduled Actions page we opened earlier.
That’s it! The backlog is processed!
Scheduling Action Scheduler to complete pending actions more frequently
In most cases, sites will not need to do this very often as the default action scheduler queue runner is able to keep up with the pending actions. However if you are commonly importing new products in batches or making large bulk edits to your catalog, you might find the need to do this more often. For those sites, I’ve found it best to schedule this command to run more frequently via a server CRON.
SSH back into the server and edit the crontab by entering the command
crontab -e. Then we can add the following line to the crontab file.
*/30 * * * * /path/to/wp-cli/wp action-scheduler run --path=/www/public --url=https://example.com
This will schedule the command to run every 30 minutes — adjust this to your needs based on individual site activity.
Need help optimizing your WooCommerce store?
the occasional backlog of pending actions in WooCommerce can affect the functionality and accuracy of your online store. However, by using wp-cli and scheduling more frequent runs of the action scheduler, these issues can be effectively managed. This might seem like a daunting task, especially for larger e-commerce sites with extensive product catalogs, but it’s crucial for maintaining smooth operations and ensuring a seamless shopping experience for your customers.
At Sprucely Designed, we specialize in providing comprehensive solutions for small businesses running WooCommerce websites. We understand the intricacies of managing a large product catalog and the potential issues that can arise. We can help you navigate these complexities and optimize your WooCommerce performance by implementing strategies like the ones outlined in this article. Don’t let your operations get bogged down chasing down task backlogs. Schedule a call today to find out how we can spruce up your WooCommerce site and ensure it runs smoothly and efficiently.