We experienced this problem ourselves and I have couple of suggestions that may help. First of all this problem usually happens for one of two reasons:
1- You don’t have visitors coming to the site triggering WordPress’ scheduling system:
Solution: Hearbeat Plugin
– If you use the Heartbeat plugin, check to see if it is disabled or slowed down. Set it on 5 min interval (as opposed to 30 min as most hosting companies suggest). There are other plugins that work as a bot visiting your site every 5 minutes, but I would not use them myself). I would try the Heartbeat plugin.
2- If the site is getting visitors at all times and WordPress’ scheduling system still doesn’t work:
Solution: wp-cron.php.
Check with your hosting company whether they made changes to the way Cron works on your WordPress installation. Ask them also to check the site’s logs to make sure calls to the wp-cron.php file happen regularly.
Hopefully this will help.