如果要禁用“假”WordPress cron并触发计划的任务,则需要使用真正的cron作业ping WordPress。
如何禁用WP Cron只需在实例中添加一行wp-config.php
文件:
define( \'DISABLE_WP_CRON\', true );
如何设置真正的cron作业最简单的方法可能是打开hostings配置用户界面并一起单击。如果您像我一样对手动点击作业不满意,您可以使用
crontab
服务器上的命令。您可以自己搜索,以下是基本信息:
通过SSH连接到服务器中,找出负责PHP进程的用户。ps -efj
将告诉您流程和拥有它的用户进入crontab -u $PHP_USER_NAME -l
要查看此用户的现有作业(例如备份),请向ping服务器添加新的cronjob–some examples如何运行WP Cron现在您必须决定是通过HTTP还是通过文件系统ping WordPress。您的选择包括:php
, curl
/wget
.
如果使用PHP,请检查whereis php
获取PHP可执行文件的完整路径。这样,您就不必依赖全局和PATH环境变量:
/usr/local/bin/php /var/www/wp/wp-cron.php
如果您使用
wget
:
wget -qO - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
差不多就是这样。请记住
?doing_wp_cron
查询参数很重要,否则cron将不会运行。
其他信息
crontab有一个内置编辑器:
crontab -e
所以你可以全屏输入。
如果您的cronjob抛出错误(因为echo
或者其他不应该存在的东西)并且您只想测试东西,您可以将其路由到>/dev/null 2>&1
, 因此,隐藏其输出和错误。你不必那么做。
当您有very long running 任务或运行时间不可预测的任务(如导入内容、返工图像、转换mp3或mp4文件),则您可能有一个仍在运行的cronjob,而另一个cronjob已经启动,因此失败。您可以通过使用crontab替代方案来防止这种情况,如runwhen 有作业队列,或者如果您喜欢Go语言,请使用Jobber.
另一种选择是使用正常运行时间监控服务。这些都是免费的,你可以直接ping你的服务器(见上文wget
示例)无需进行任何设置。