Как вызвать Drupal Cron несколько раз, пока не будет сделано - PullRequest
1 голос
/ 09 августа 2010

Я работаю в среде разработки Wamp и проверяю, сколько времени потребуется для индексации сайта.Я делаю это, запустив cron вручную.

Проблема в том, что если в job_queue есть 700 заданий , то каждый запуск cron делает только некоторые из них, поэтому мне нужно несколько раз запустить cron.Как я могу продолжать вызывать cron в цикле, пока в job_queue не останется больше заданий?

Кроме того, я открыт для любых альтернативных бросков.Я знаю о Drush Cron, но это также делает только некоторые из заданий каждый запуск, поэтому необходимо запустить снова вручную.

Ответы [ 3 ]

5 голосов
/ 09 августа 2010

Если вы хотите запустить что-то все сразу, пока это не будет сделано, cron - неподходящий инструмент для работы; batch API - инструмент для этого.К сожалению, поисковый модуль предназначен для обновления только на cron, но в search_cron не так много кода для копирования в пакетную функцию.Поэтому я бы посоветовал пойти по групповому маршруту, а не по псевдопартии вокруг cron, поскольку ваша конечная цель, похоже, совсем не связана с cron.

3 голосов
/ 09 августа 2010

шаг 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 скрипта одновременно.
1 голос
/ 20 января 2011

drush search-index создаст для вас оставшийся поисковый индекс.

...