簡體   English   中英

Wordpress cronjob每5秒鍾無效

[英]Wordpress cronjob every 5 seconds not working

我已經在我的Wordpress functions.php文件中添加了以下內容,每5秒向輸入的電子郵件地址發送一封郵件,但它無效。 我添加了一些日志來檢查作業是否運行鈎子,但它只是初始化它,就是這樣:

add_filter( 'cron_schedules', 'five_seconds_interval' );
function five_seconds_interval( $schedules ) {
    $schedules['five_seconds'] = array(
        'interval' => 5,
        'display'  => esc_html__( 'Alle 5 Sekunden' ),
    );

    return $schedules;
}

add_action('init', 'schedule_my_cron',10);
function schedule_my_cron(){
    error_log("schedule_my_cron()");
    wp_schedule_event(time(), 'five_seconds', 'my_job');
}

function my_job() {
    error_log("my_job()");
    wp_mail('test@localhost.de', 'Cronjob funktioniert!', 'LOL', 'Von IBims');
}

這是我在日志文件中得到的:

[14-Nov-2018 17:31:24 UTC] schedule_my_cron()

我也在配置文件中禁用了Wordpress的正常cronjob:

define('DISABLE_WP_CRON',true);

在此之后,我創建了一個工作正常的unix cronjob。 所以我期待當我每隔5秒運行一次unix cronjob時,我就會將我的郵件發送到該地址。 怎么了?

更新

我可以確認我的自定義計划已成功添加,這是wp get schedules()輸出的一部分:

[five_seconds] => Array
    (
        [interval] => 5
        [display] => Alle 5 Sekunden
    )

根據函數的文檔,您需要對按計划調用的函數使用add_action() ,而不是執行調度的函數。 wp_schedule_event()的第三個參數是動作掛鈎的名稱,而不是函數名稱。 嘗試這樣的事情:

register_activation_hook(__FILE__, 'schedule_my_cron');
add_action('init', 'schedule_my_cron',10);
function schedule_my_cron(){
    error_log("schedule_my_cron()");
    wp_schedule_event(time(), 'five_seconds', 'my_five_second_event');
}

add_action('my_five_second_event', 'my_job');
function my_job() {
    error_log("my_job()");
    wp_mail('test@localhost.de', 'Cronjob funktioniert!', 'LOL', 'Von IBims');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM