Recurring scheduled task help

You have to schedule your event in a hook, for example in after_setup_theme or wp actions: add_filter(‘cron_schedules’,’my_cron_definer’); function my_cron_definer($schedules){ $schedules[‘twomin’] = array( ‘interval’=> 120, ‘display’=> __(‘Once Every 2 Minutes’) ); return $schedules; } add_action(‘my_periodic_action’,’my_periodic_function’); function my_periodic_function(){ mail(’[email protected]’,’Test!’, ‘Test Message’); } add_action( ‘wp’, ‘wpse8170_setup_events’ ); // or add_action( ‘after_setup_theme’, ‘wpse8170_setup_events’ ); function wpse8170_setup_events() { if ( … Read more

run a cron task without obstructing page load?

Cron tasks don’t directly affect page load besides the 0.01s timeout (of course, they do affect server load, so they can impact page load indirectly). My hunch is that your PHP config is the issue. The cron tasks run like any other web request, and they’re subject to PHP’s max_execution_time INI setting. If this is … Read more

Refresh external feeds only in cron?

My recommendation would be to set up a wrapper for fetch_feed(). Call the wrapper function through WordPress’ cron and you shouldn’t have an issue. So something like: function schedule_fetch_feeds() { if ( ! wp_next_scheduled( ‘cron_fetch’ ) ) { wp_schedule_event( time(), ‘hourly’, ‘cron_fetch’, ‘http://blog1.url/feed’ ); wp_schedule_event( time(), ‘hourly’, ‘cron_fetch’, ‘http://blog2.url/feed’ ); } } function fetch_feed_on_cron( $url … Read more

Get frequency of scheduled event

This is an old question, but hopefully this helps someone facing the same issue. We can use wp_get_schedule( $hook ) to retrieve the cron schedule for the hook. Then we can use wp_get_schedules() to retrieve the supported cron recurrences. Find the correct array value and return it. /** * Retrieve Cron interval for hook. * … Read more

When does next Cron Job run (time from now)?

Edit: wp_next_scheduled() returns the timestamp of the next scheduled job of a specified wp-cron job-arguments pair. Please note that this differs slightly in functionality to the answer below, in that you have to provide the arguments passed to cron job’s callback (if it has any). The original answer would provide the time of the next … Read more