WP_Schedule_Event是否在后台运行?

时间:2016-10-27 作者:Damithatt

根据法典,

安排一个钩子,该钩子将由WordPress操作核心按照您指定的特定间隔执行。如果超过预定时间,当有人访问您的WordPress站点时,将触发该操作。

假设我使用wp_schedule_event. 功能需要20-30秒才能完成任务。

那么它是否会影响到用户?我的意思是,如果它像正常的cron作业一样在后台运行,则不会影响用户。

2 个回复
最合适的回答,由SO网友:cowgill 整理而成

视情况而定。初始页面加载触发器不应该触发,但在Cron作业完成之前,随着访问者浏览您的站点,性能可能会下降。

您计划使用PHP或DB的预定事件是否密集?多久运行一次?

Here\'s how it works

<预定事件(又名Cron作业)将由任何访问您网站的人在到期(或过期)后初始化。所以访问www.test.com/somepage/ 将告诉WP Cron先生,“嘿,伙计,该起床了,开始做这个Cron工作了”.xml 在这段时间内,网站很有可能对任何人来说都很慢。特别是如果您由于共享CPU和内存而使用共享主机如果是每天或每周运行一次的Cron作业,我不会担心性能受到影响。

Supporting Answer

SO网友:Lucas Cave

我想问题是,是否有任何cron作业在“主”PHP工作线程中运行,即向访问者呈现输出的工作线程,还是在另一个PHP工作线程中运行,而不“阻塞”访问者线程。

通过实验很容易找到答案。

尝试添加“echo \'<h1>Yes, it Runs on this thread</h1>\'; “cron作业脚本开头的某个地方的语句。如果您访问您的站点,然后在屏幕上的某个地方看到“是的,它在这个线程上运行”,则cron作业在您的线程上运行。

如果不这样做,顺便说一句,cron作业将在后台运行(即使用PHP-FPM时在另一个PHP“worker”中)。