WP Cron在TimeSpan之后未执行

时间:2015-11-20 作者:Loc Pham

我试图利用wp_schedule_single_event 计划异步任务。然而,我的事件在60秒后从未被调用。我需要做些什么吗ldp_new_topic_event 在这里使用之前要先钩住它?我的网站正在共享主机上运行。

以下是我如何编码我的时间表:

<?php

if ( !class_exists( \'LDP_Notifications\' ) ) :

final class LDP_Notifications {

   public static function new_topic_notification( $topic_id = 0, $forum_id = 0, $anonymous_data = false, $author_id = 0, $is_edit = false) {

       // Do some stuff.
       // Based on some conditions the following is called:
       error_log(\'++++ schedule an event. I see this printed.\');

       add_action( \'ldp_new_topic_event\', \'LDP_Notifications::send_push_notification\', 10, 2 );
       wp_schedule_single_event( time() + 90, \'ldp_new_topic_event\', array( $message, $deviceTokens ) );
   }

   public static function send_push_notification( $message, $deviceTokens )  
   {
        error_log(\'Expecting this after 60 seconds but I never got it.\');
   }
}

endif;

?>
谢谢你的帮助。

1 个回复
最合适的回答,由SO网友:Scriptonomy 整理而成

您的自定义挂钩永远不会触发,因为您没有以正确的方式订阅它!

Context

尽管您在类函数中调用它,但它永远不会在超过该点时执行。

放置add_action 在其他地方如plugins_loaded 钩把它放在课堂外可以看到的地方。

Dependencies

变量$message和$deviceTokens在哪里声明?如果不是,则wp_schedule_single_event 将失败!所以一开始没有安排任何活动!

相关推荐

Running wp-cron from CLI

不确定我关于跑步的假设是否正确wp-cron 从CLI调用要比通过wget 或curl, 所以无论哪种方式,我都在尝试:/usr/bin/php /var/www/mywebsite.com/wp-cron.php?import_key=<keyhere>&import_id=1&action=processing 我确保了PHP的路径和文件是正确的,但我不断遇到以下错误:无法打开输入文件:wp cron。php?import\\u键=我做错了什么?