如何多次调用drupal cron直到完成

时间:2010-08-08 22:49:27

标签: php drupal content-management-system cron

我正在开发一个wamp开发环境,并测试将网站编入索引所需的时间。我是通过手动运行cron来做到这一点的。

问题是,如果job_queue中有 700个作业,则每次运行的cron只会执行其中一些,所以我需要多次运行cron。如果job_queue中没有剩余的工作,我怎么能继续调用cron?

此外,我对任何匆忙的替代方案持开放态度。我知道drush cron,但这也只是每次运行的一些工作,所以需要再次手动运行。

3 个答案:

答案 0 :(得分:5)

如果你想一直运行一切,直到完成,cron就是错误的工具; batch API是此工具。不幸的是,搜索模块只能在cron上更新,但search_cron中没有很多代码可以复制到批处理函数中。因此,我建议在批处理路径中使用围绕cron的某种伪批处理,因为您的最终目标似乎根本不涉及cron。

答案 1 :(得分:3)

步骤1. - 每分钟运行cron
第2步。 - 只需检查脚本是否已在运行。如果是这样 - 关闭“新脚本”


$lid='';
if(is_array($argv) && isset($argv[1])) {
    $lid=$argv[1];
}
if($lid!=='') {
  $xx=array();
  exec('ps x | grep "thefile.php '.$lid.'" | grep -v "grep"', &$xx);
  if(count($xx)>1) {
    die('Script '.$lid.' running already... exiting... '."\n");
  }
}



每分钟把它放在cron中

php thefile.php 1
php thefile.php 2
php thefile.php 3
同时运行3个脚本。

答案 2 :(得分:1)

drush search-index将为您生成剩余的搜索索引。