这是一个关于WordPress架构的问题,通过阅读WordPress文档,我无法完全理解这个问题。
我有一个预定的事件,可能需要1分钟以上才能完成,因为它是一个繁重的存储过程,会在我的数据库上创建几个缓存。
据我所知,WordPress中的预定事件(wp_schedule_event
) 只有在网站上发出请求时才会触发。因此,我设想如果我将此活动安排在每天凌晨3:00(这是我网站上不太拥挤的一个小时)运行,它会在第一次请求时在凌晨3:00后触发,如果没有人访问它,它可能会在这段时间后几分钟发生。我说得对吗?
不过,如果我是对的,假设一个用户在凌晨3:01打开我的网站,它会触发我预定的事件。。。该用户是否需要等待1分钟,直到结束,以便加载网站?或者此计划事件发生在线程中?
最合适的回答,由SO网友:Tom J Nowell 整理而成
是的,如果没有人访问您的站点,WP Cron将不会运行。您还可以遇到PHP执行时间限制
然而,有一些方法可以缓解这种情况:
使用curl通过真正的cron作业手动ping cron URL在真正的cron作业上通过WP CLI运行cron,允许cron作业任意运行使用作业管理器插件(如cavalcade)来管理cron任务