为什么wp_Schedule_Single_Event会延迟启动?

时间:2019-04-19 作者:Patrick St.Onge

我正在使用wp_schedule_single_event 当登录用户访问仪表板页面时,立即在后台运行函数。我遇到的问题是,触发和功能实际运行之间的时间在几秒钟到5分钟之间变化。

我一打电话就给自己发邮件进行调试wp_schedule_single_event, 然后在调用的函数中。我知道活动马上就安排好了,因为我收到邮件很快,_transient_doing_cron 在中创建wp_options 表,并将我的操作的名称添加到cron 在里面wp_options 而它需要运行。

我的函数运行得相当快,在不到10秒内完成。这就好像wordpress之前正在运行其他cron一样,但我只在几分钟的时间间隔内测试了多次,所以我不能总是得到需要运行的每小时cron。我是否可以优先安排要首先运行的活动?还会发生什么?

1 个回复
SO网友:Fayaz

Cron的执行可能会有所不同,这取决于系统Cron实际运行的时间。例如,如果系统以5分钟的间隔运行cron,则即使计划立即运行的cron也会在几秒钟到5分钟之间执行。

您可以使用WP Crontrol Plugin 检查WordPress设置的cron时间表,以防其他cron任务影响它。要检查系统cron计划,请使用crontab 命令或检查cron设置CPanel.

还有,如果你没有define(\'DISABLE_WP_CRON\', true); 产生wp-config.php, 而且没有运行操作系统cron,这意味着WordPress正在运行cron。在这种情况下,cron事件的执行将取决于站点访问。但是,根据您的以下描述:

实际运行的功能在几秒钟到5分钟之间变化。

看起来操作系统cron每隔5分钟运行一次。您可以将其设置为一分钟的间隔,以加快执行速度。