检查事件是否已计划-仅计划一次事件

时间:2019-01-07 作者:Pavel Janicek

我的wordpress插件有一些编程错误。当它运行时,它会继续向wordpress注册cron作业。我将插件作为一个类编写:

class Cleverstart_Woofio extends WC_Integration{
    public function __construct(){
       add_action(\'woofio_hourly\', array( $this,\'woofio_create_haystack\'));
       wp_schedule_event(time(), \'hourly\', \'woofio_hourly\');
       //other stuff not related to the question
    } 

   public function woofio_create_haystack(){
     //do quite performance heavy stuff
   }

}

$cleverstart_woofio = new Cleverstart_Woofio();
我的理论是new Cleverstart_Woofio(); 调用将始终安排新的cron事件,并将我的站点挂起。我需要检查活动是否已经安排好,并且只安排一次。然而,我对如何实现这一目标一无所知。

谢谢你的帮助

1 个回复
SO网友:Pavel Janicek

你听说过吗Rubber Ducking?

这个official documentation 有一个答案:

if ( ! wp_next_scheduled( \'woofio_hourly\' ) ) {
    wp_schedule_event( time(), \'hourly\', \'woofio_hourly\' );
}