【问题标题】:Why is error_log not being called during my cron?为什么在我的 cron 期间没有调用 error_log?
【发布时间】:2020-01-28 22:43:56
【问题描述】:

我正在尝试安排每五分钟运行一次。

下面的代码成功安排了 cron,它显示在 WP Crontrol 中,但是“正在执行 cron!”永远不会出现在错误日志中。

怎么了?

add_action('do_cron_stuff_event', 'do_cron_stuff', 10, 2);

function do_cron_stuff()
{
    error_log('Doing a cron!');
}

add_filter('cron_schedules', 'cron_stuff_add_5_minute_cron_interval');

function cron_stuff_add_5_minute_cron_interval($schedules)
{
    error_log("cron_stuff_add_5_minute_cron_interval called");

    $schedules['five_minutes'] =
    [
        'interval' => 300,
        'display'  => esc_html__('Every Five Minutes')
    ];

    return $schedules;
}

register_activation_hook(__FILE__, 'cron_stuff_plugin_activation');

function cron_stuff_plugin_activation()
{
    error_log("cron_stuff_plugin_activation called");

    if (wp_next_scheduled('do_cron_stuff_event') === false)
    {
        wp_schedule_event(time(), 'five_minutes', 'do_cron_stuff_event');
    }
}

register_deactivation_hook(__FILE__, 'cron_stuff_plugin_deactivation');

function cron_stuff_plugin_deactivation()
{
    error_log("cron_stuff_plugin_deactivation called");

    wp_clear_scheduled_hook('do_cron_stuff_event');
}

【问题讨论】:

  • 您在日志中看到cron_stuff_plugin_activation called 调用了吗?

标签: wordpress cron


【解决方案1】:

我认为问题在于您指定 2 $accepted_args

add_action('do_cron_stuff_event', 'do_cron_stuff', 10, 2);

do_cron_stuff 不接受任何内容。

改成

add_action('do_cron_stuff_event', 'do_cron_stuff', 10);

看看是否可行。

【讨论】:

  • 谢谢,我错过了。结果证明我的问题有所不同,但参数计数也需要修复。
【解决方案2】:

WP-Cron 的工作原理是:在每次页面加载时,都会检查计划任务列表以查看需要运行的内容。任何计划运行的任务都将在该页面加载期间运行。 WP-Cron 不会像系统 cron 那样持续运行;它仅在页面加载时触发。如果您在下午 2:00 安排任务并且在下午 5:00 之前没有页面加载,则可能会发生安排错误。 https://developer.wordpress.org/plugins/cron/

这意味着您应该每 5 分钟从外部触发(查询)/wp-cron.php。

【讨论】:

    【解决方案3】:

    原来error_log 实际上是在调用,但是因为它是由系统 cron 激活的,所以错误日志输出被发送到不同于通常的错误日志文件。

    为了解决这个问题,我使用了 error_log 函数的 third parameter 将输出发送到自定义日志文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多