【发布时间】:2019-04-09 00:52:47
【问题描述】:
所以今天早上我在一个使用 WP Cron 的网站上遇到了一个问题。代码如下所示:
//Schedule the cron to run if not scheduled
if ( ! wp_next_scheduled( 'my_check_cron_event' ) ) {
wp_schedule_event( strtotime('tomorrow America/New_York') , 'daily', 'my_check_cron_event' );
}
问题很简单。该代码工作正常,基本上我想每天在当地时间午夜运行该函数。因此,当我第一次运行该函数时-它会获取明天午夜的时间戳-当地时间。从那以后 - functino 一直在运行。
现在这个周末 - 由于夏令时,该功能实际上并没有得到 RESCHEDULED - 它只是设置为每 24 小时运行一次。所以函数在晚上 11 点开始运行。当然这很容易修复 - 但只会再次破坏。我真的找不到任何关于这个主题的好帖子 - 你会如何处理:
wp_schedule_event 在夏令时更改时每天运行?
只是为了抢占一个明显的答案:我无法运行正确的 cron - 它需要通过 wp.我们的主机根本不支持它,它很烂 - 但那是客户。任何建议将不胜感激!
【问题讨论】:
-
所以您需要根据日光存在的时间来安排活动?
-
您是否在 wordpress 设置中使用纽约时区配置了 UTC(我认为这本身会起作用)?WP Cron 仅在用户访问时工作。如果在规定的时间内没有访问,则它不会运行,如果在该时间之后有任何用户访问,它将立即触发并设置下一个预定时间,因此您不会期望像服务器 cron 这样的结果,希望您已经知道了吗?跨度>
-
我不需要根据日光安排它,我需要它在当地时间午夜运行,而不管日光如何。时区配置正确 - 我有一个 ping 设置,可以在正确的时间点击服务器来运行这个 cron,我明白这一切。问题是 cron ITSELF 计划每 24 小时运行一次 - 从它第一次设置时开始。当时区更改时,需要更改 24 小时倒计时 - 以在午夜继续运行。