Запланированные события исчезают из очереди событий

У меня проблема, когда события, которые я запланировал, работают некоторое время, а затем просто останавливаются. После просмотра очереди событий я вижу, что запланированные события больше не находятся в очереди.

Если я деактивирую, то активируйте плагин, график вернется и работает некоторое время.

Я не знаю, есть ли в WordPress что-то, что удаляет события, если они тайм-аут или что-то в этом роде.

Вот мой код:

register_activation_hook(__FILE__, 'k2_section_featured_ads_setup'); function k2_section_featured_ads_setup() { wp_schedule_event('1395871200', 'minutely', 'k2_section_featured_ads_hook'); } register_deactivation_hook(__FILE__, 'k2_section_featured_ads_deactivation'); function k2_section_featured_ads_deactivation() { $featured_next = wp_next_scheduled('k2_section_featured_ads_hook'); wp_unschedule_event($featured_next, 'k2_section_featured_ads_hook'); } add_action('k2_section_featured_ads_hook', 'k2_section_featured_ads_check_time'); function k2_section_featured_ads_check_time() { // function here } 

Вот фильтр для моих дополнительных графиков cron

 function k2_cron_add_schedules( $schedules ) { $schedules['quarterday'] = array( 'interval' => 14400, 'display' => __('Once every 4 hours') ); $schedules['minutely'] = array( 'interval' => 60, 'display' => __('Once every 1 minute') ); return $schedules; } add_filter('cron_schedules', 'k2_cron_add_schedules'); 

Solutions Collecting From Web of "Запланированные события исчезают из очереди событий"

Выполнив все мои вопросы в этом вопросе и попробовав несколько предложенных вариантов, кажется, что WordPress не может обрабатывать одну минуту кронов. Я изменил его на 5 минут и с тех пор не было никаких проблем.

Несколько вещей, которые я пробовал в течение недель для тестирования:

  • Измените имена крючков, чтобы не включать символы подчеркивания [BUSTED]
  • Перепишите плагин. Было написано процедурно первоначально, и теперь все ООП [БЫСТРОЕ]
  • Изменено на 5-минутный график [BUSTED]

EDIT: Я изначально обозначил последнее как работающее, но после всех этих месяцев он снова был внеплановый. Я все еще не уверен, что происходит со всем этим.

Мое решение на данный момент проверяется каждый час, если он работает, и если его не перенести. Я также удаляю это при деактивации и т. Д.

 wp_schedule_event(time(), 'hourly', 'my_restart_schedule_if_failed'); function my_restart_schedule_if_failed() { if( !wp_next_scheduled( 'my_scheduled_minute_job' ) ) { wp_schedule_event( time(), 'one_minute', 'my_scheduled_minute_job' ); } }