重新加载页面时WordPress Cron作业正在工作

时间:2019-06-13 作者:Vishal tanwar

我试图在我的网站上安排wp\\u cron作业每天发送电子邮件,而不打开我的网站,但这并没有发生。当用户访问网站或重新加载页面时,此项工作正常。

这是我安排cron作业的代码

// WP_CRON Scheduling

function my_custom_cron_schedule( $schedules ) {
    $schedules[\'every_one_minute\'] = array(
        \'interval\' => 60, // Every 1 Minute
        \'display\'  => __( \'Every 1 Minute\' ),
    );
    return $schedules;
}
add_filter( \'cron_schedules\', \'my_custom_cron_schedule\' );



//Schedule an action if it\'s not already scheduled
if ( ! wp_next_scheduled( \'my_cron_function_hook\' ) ) {
    wp_schedule_event( current_time(\'timestamp\'), \'every_one_minute\', \'my_cron_function_hook\' );
}

///Hook into that action that\'ll fire every One Minute
 add_action( \'my_cron_function_hook\', \'my_cron_function\' );

//create your function, that runs on cron
function my_cron_function() {
    $crtime = date(\'F-j-Y h:i:s\');
    wp_mail(\'[email protected]\',\'Cron Job Test\', "$crtime");
}

1 个回复
SO网友:HU ist Sebastian

Wordpress Cron作业不是“真正的”Cronjobs,相反,它们依赖于访问站点的人,然后查看是否是时候执行计划作业了。

1.:有人访问网站

2.:Wordpress调用文件wp cron。php

3.:wp cron。php会查看数据库中是否有此时到期的计划作业。

4.:wp cron。php执行所有计划的作业。

如果要确保cronjob按时执行,需要执行更多步骤:

1.:安排cronjob。你已经这么做了。

2.:禁用集成Wordpress Cron。编辑wp配置。php和插入define(\'DISABLE_WP_CRON\', true); 线下define(\'DB_COLLATE\',\'\');

3.:在服务器上创建一个“真正的”cronjob,设置为每隔一段时间(5分钟、15分钟、1分钟,诸如此类)运行一次。我不知道你是否可以以及如何在你的主机上创建cronjob,这是你必须问你的主机公司的。将cronjob的目标定为yourdomain。com/wp cron。php

4.:成功!您的cron现在应该可以正常工作了!

快乐的编码!