Wordpress Cron作业未运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Wordpress Cron作业未运行相关的知识,希望对你有一定的参考价值。

我使用wp_schedule_event()安排了一个任务,该任务每小时在我的网站上运行一次。由于某种原因,我要运行的功能正在运行,事件本身显示在“ cron”选项表下。一切似乎都很好,但是当我等待并检查功能是否运行时,我什么都没有。

我每小时进行一次测试,但这是每天一次

这是php代码的完整代码段:

/*
======================================================
  MANAGE SUB CANCELLATIONS
  1 - daily event to run
  2 - manage_sub_cancel()
======================================================
*/


/* *   
   *
   * -- > 1 - daily event to run
   *
   * */


add_action( 'wp', 'check_sub_activation' );
function check_sub_activation() {
  if ( ! wp_next_scheduled( 'check_sub_event' )) {
    wp_schedule_event( current_time( 'timestamp' ), 'hourly', 'check_sub_event' ); // creating the hook
  }
}

// add_action( 'wp', 'check_sub_deactivation');
function check_sub_deactivation() { // will clear the scheduled hook if activated
    wp_clear_scheduled_hook('check_sub_event');
}


/* *   
   *
   * -- > 2 - manage_sub_cancel()
   *
   * */


function manage_sub_cancel() { // This function will apply the cancellation of a boutique when period end is reached
  $args = array(
    'post_type'     => 'boutique',
    'meta_key'      => 'cancel_at_end',
    'meta_value'    => 'true',
    'meta_compare'  => '=',
  );

  $the_query          = new WP_Query( $args );
  $boutique_list      = $the_query->posts;

  foreach ( $boutique_list as $boutique ) {
    $boutique_id    = $boutique->ID;
    $period_end     = get_post_meta( $boutique_id, 'period_end', true );
    $today          = time();

    if ( $today < $period_end ) { // À INVERSER LORSQUE TERMINÉ
      update_post_meta( $boutique_id, 'sub_id', "" );
      update_post_meta( $boutique_id, 'pckg_id', "1" );
      update_post_meta( $boutique_id, 'cancel_at_end', "false" );
      update_post_meta( $boutique_id, 'period_end', "" );
    } else {
      // Period end is not passed
    }

  }
}

add_action( 'check_sub_event', 'manage_sub_cancel' ); // add manage_sub_cancel() function to 'check_sub_event' hook we just created

[我还在使用插件Advanced Cron Manager列出所有cron作业,我确实看到了我在这里创建的作业,我也可以“立即执行”并且它正在工作..但是当我等待每小时运行偶数时即使我访问该网站,也看不到任何内容。我不知道一切似乎都很好,但什么也没发生。

答案
您只有几个选项可以解决此限制:

如果您具有托管环境的root访问权限,则创建一个实际的cron作业以定期触发页面加载(例如,每十分钟一次)。

    如果您没有root访问权限,则设置您自己的个人服务器,并在此新服务器上执行#1。
  1. [运行脚本或打开运行某些javascript的网页以使PC定期向您的网站发送请求。]
  2. 那些按优先顺序列出。 #1最好,#2较贵,稍微复杂一些,但仍然是一个合理的选择,#3相当糟糕且不可靠,但可能会在一定程度上起作用。

以上是关于Wordpress Cron作业未运行的主要内容,如果未能解决你的问题,请参考以下文章

Elastic Beanstalk 未调度 cron.yaml 中定义的作业

cron 作业未在 ubuntu 上的 docker 容器内运行

登录的用户 id 没有进入 wordpress cron 作业

Magento - cron 作业脚本正在运行,但 Magento 订单确认电子邮件未发送

使用 cron 作业运行 wp cli 命令

PHP Wordpress - 禁用Cron作业功能