我正在开发一个wamp开发环境,并测试将网站编入索引所需的时间。我是通过手动运行cron来做到这一点的。
问题是,如果job_queue
中有 700个作业,则每次运行的cron只会执行其中一些,所以我需要多次运行cron。如果job_queue
中没有剩余的工作,我怎么能继续调用cron?
此外,我对任何匆忙的替代方案持开放态度。我知道drush cron,但这也只是每次运行的一些工作,所以需要再次手动运行。
答案 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
将为您生成剩余的搜索索引。