WP Cron调度在托管服务器上不可靠

时间:2022-01-26 作者:noos

以下代码是save_post 行动它在我的本地开发环境中按预期工作,但在托管服务器上无法可靠工作。(我所说的不可靠是指它有时会起作用,但我无法推断出任何规律。)

if (wp_next_scheduled(\'my_expiration_hook\', [$post_id])) {
    my_log(\'unscheduling all for post \' . $post_id);
    wp_clear_scheduled_hook(\'my_expiration_hook\', [$post_id]);
}

if ($today < $expire) {
    my_log(\'scheduling \' . $post_id . \' with date \' . $expire);
    wp_schedule_single_event(strtotime($expire), \'my_expiration_hook\', [$post_id]);
}
所有内容都正确记录,但似乎wp_clear_scheduled_hookwp_schedule_single_event 呼叫从未发生。

我正在使用WP Crontrol插件检查时间表。使用此插件手动修改计划的效果与预期一致。

我是否遗漏了什么,或者这是一个托管问题?谢谢

1 个回复
SO网友:Bazdin

大多数主机都会修改默认cron的工作方式,我对GoDaddy管理的主机有一些特别的问题,因为它们完全控制了主机,而您对此无能为力。

如果它在本地工作,我会联系托管公司,询问cron是如何运行的。如果它是托管的GoDaddy,那么除了更换主机之外,您别无选择。在客户最终同意之前,我与他们斗争了3个月。

另一个需要注意的是对象缓存,我发现它也会导致一些问题。