在WordPress中使用Linux cron作业运行函数

时间:2015-07-23 作者:chap

我知道WordPress有一个人造cron,当用户访问页面时,它被称为like so。

register_activation_hook(__FILE__, \'my_activation\');
add_action(\'my_hourly_event\', \'do_this_hourly\');

function my_activation() {
    wp_schedule_event(time(), \'hourly\', \'my_hourly_event\');
}

function do_this_hourly() {
    // do something every hour
}
我想像这样使用linux cron:

*/5 * * * * * /usr/local/bin/php/ /Path/to/file
问题是,如果该文件是这样的:

<?php 

function do_something() {

  echo \'Hello World\';

}

do_something(); 
每次我重新加载页面时都会调用Do something函数。我需要的是一种使用linux cron进行指定的方法,以便只在运行cron时调用do\\u something()。因此,文件应该只有do\\u something()的函数定义,而不应该直接调用函数。

<?php 

 function do_something() {

   echo \'Hello World\';

 }

2 个回复
SO网友:MikeNGarrett

您缺少一个关键组件。

将此添加到wp-config.php: define( \'DISABLE_WP_CRON\', true );

下面是一些其他有用的常量wp-config.php: https://gist.github.com/MikeNGarrett/e20d77ca8ba4ae62adf5

SO网友:jgraup

您的cron作业只有在您告诉他们时才会运行。

1:分钟(0-59)2:小时(0-23)3:天(0-31)4:月(0-12[12==12月])5:一周中的一天(0-7[7或0==周日])/path/to/command-计划的脚本或命令名称

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)
但是可以将函数名传递给您的PHP

1 2 3 4 5 /path/to/command arg1 arg2
然后,在PHP文件中,仅当参数是使用$_SERVER$_GET.

结束

相关推荐

如何知道由wp_cron启动的脚本是否仍处于活动状态?

我有一个插件,它使用wp\\u cron来运行作业,这些作业有时非常大,而且它们似乎已经停止,没有任何指示(apache日志和插件自己的日志中都有0个错误)因此,我想知道是否有一种方法可以检查通过wp\\u cron启动的任何脚本是否仍然处于活动状态或是否超时?我知道,建议禁用wp\\u cron并设置一个实际的cron作业来调用wp cron。php,但我需要这个插件来处理实际的cron和wp cron。谢谢你对我的帮助。