CRON计划在运行后未更新

时间:2017-02-06 作者:Lucas Bustamante

在我的网站上,Cron作业的速度非常慢。

我在Wordpress环境之外创建了这个小脚本,只是为了测试WP Cron的响应时间:

<?php

//Method which does a basic curl get request
function get_data($url) {
        $ch = curl_init();
        $timeout = 5;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $data = curl_exec($ch);
        //getinfo gets the data for the request
        $info = curl_getinfo($ch);
        //output the data to get more information.
        print_r($info);
        curl_close($ch);
        return $data;
}

get_data(\'http://www.example.com?wp-cron.php?doing_wp_cron=1486419273\');
结果如下:

Array
(
    [url] => http://www.example.com/?wp-cron.php?doing_wp_cron=1486419273
    [content_type] => 
    [http_code] => 0
    [header_size] => 0
    [request_size] => 0
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 42.822546 // Important
    [namelookup_time] => 0
    [connect_time] => 0
    [pretransfer_time] => 0
    [size_upload] => 0
    [size_download] => 0
    [speed_download] => 0
    [speed_upload] => 0
    [download_content_length] => -1
    [upload_content_length] => -1
    [starttransfer_time] => 0
    [redirect_time] => 0
    [certinfo] => Array
        (
        )

    [primary_ip] => 
    [primary_port] => 0
    [local_ip] => 
    [local_port] => 0
    [redirect_url] => 
)
正如你所看到的,它有一个令人难以置信的加载时间几乎43秒。

以下是Crontol插件报告的我的cron:

list of wordpress crons

我在这里看到的最大问题是;“下次运行”;没有更新,这意味着每个cron每次都会运行。。。这可能就是为什么它这么慢,不是吗?

如何制作;“下次运行”;实际上根据cron的;重复性;?

2 个回复
SO网友:Lucas Bustamante

嗯,我是用手动cron完成的。

我使用NGINX+PHP-FPM,这使得手工cron任务更加困难。因此,我必须与wget一起实现它。

如果您使用PHP-FPM并需要通过crontab触发Wordpress的cronjobs,请执行以下操作:

使用root登录SSHcrontab -e*/30 * * * * /usr/bin/wget -q -O /tmp/temp_crons.txt http://example.com/wp-cron.php?doing_wp_cron

好吧,它起作用了:

enter image description here

如果使用Apache,只需使用/usr/bin/php

SO网友:Edward

您可以使用wp-cli 通过http请求执行无需绕道的计划。外接程序crontab -e.

*/30 * * * * wp cron event run --path=/path/to/wp-docroot
这样,您就不会遇到最长执行时间问题,这可能是您计划执行受阻的原因。

相关推荐

未执行Cronjob函数-负秒数

我创建了一个自定义函数,用于读取XML文件并将其导入woocommerce产品。XML文件每天由外部平台在网站ftp中导出。我将wordpress cronjob替换为真正的cronjob,cronjob实际上调用了函数,但函数从未执行过(参见屏幕截图)。我的职能:<?php /** * DynamiX Child Theme Functions * Load languages directory for translation */ fu