Duke Yin's Technology database

保证WordPress Cron Job执行

WordPress的定时任务有个缺陷,它不一定会按照定好的计划执行。

因为WordPress的 Cron Job依赖前端访问,而不是直接跟操作系统挂钩,所以当WordPress网站的访问量很低,或者是不公开的WordPress实例,其Cron Job就不能按时执行任务。

不按时执行任务除了会影响既定程序的运行,也会影响WP核心的检查更新,维护任务,安全方面也是很大的风险。

情况1

如果你的站点是公开的,可以在Linux 的CronTab上制定一个较为频繁的任务,定时访问站点,触发WordPress检查CronJob:

wget --delete-after https://www.website.com/wp-cron.php

将这个命令保存到系统级crontab里,建议每30分钟执行,即可。记得替换 https://www.website.com/ 为你的站点首页地址。

情况2

如果你的网站是私密的外界无法通过域名访问,则可以:

cd /path/to/your/website/rootfolder; wp cron event run --due-now >/dev/null 2>&1

替换 /path/to/your/website/rootfolder 为你的站点在本机的路径,即可。同样推荐每半小时执行一次。

情况3

如果你的操作系统是Windows,则可以用Windows 计划任务 制定一个系统级计划任务触发PHP执行任务。

shellscript.vbs

Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\path\to\script\script.bat" & Chr(34), 0
Set WinScriptHost = Nothing

script.bat

"C:\wamp\bin\php\php5.4.12\php.exe" -f "C:\wamp\www\website\my_process.php"

然后用计划任务定期执行shellscript.vbs即可。

#

发布评论

评论

标注 * 的为必填项。