4

HTMLページから解析するparser2というモジュールがあります。cronスケジュールを除いて、すべてが完全に機能します。タスクがcronタスクに追加されないだけで、ログには、cronが実行されるたびにスケジュールされたタスクが0つあることがわかります。次の問題は、手動で cron を数回開始すると、死の白い画面が表示された後、DB と system.table から parser2 テーブルを削除し、update.php を実行するのに役立つ唯一のことです。 . これは、このすべての作業を行うべきコードですが、ここでエラーがどこにあるのか理解できません

 function parser_cron_queue_info() {
    $info = array();
    $info['get_parser_weather'] = array(
    'worker callback' => 'parser_weather',
    'time' => 10,      
  );
    $query = db_select('parser_jobs', 'pn')
    ->fields('pn', array('id','time_run_in_crone'))
    ->condition('run_in_crone', 1)
    ->execute();
    foreach ($query as $job){
        $info['get_parser_weather_'.$job->id] = array(
        'worker callback' => 'parser_weather',
        'time' => $job->time_run_in_crone,      
   };
  }
  return $info;
}


function parser_cron() {

  $query = db_select('parser_jobs', 'pn')
    ->fields('pn', array('id','time_run_in_crone'))
    ->condition('run_in_crone', 1)
    ->execute();
  foreach ($query as $job){
    $queue = DrupalQueue::get('get_parser_weather_'.$job->id);
    $queue->createItem($job->id);
  }


}

function  parser_weather($job_id){

    $job = parser_job_load($job_id);
   _parser_url_delete_all();
   _parser_url_add($job->start_url);
   while (_parser_url_get_not_parsed())
   {
      parser_parse2($job);
    };
}
4

1 に答える 1

1

コードが生成している cron コマンドを取得してから、コマンド ラインで実行して、それが正しいことを確認し、スクリプトを実行しているユーザーに新しいタスクを追加する権限があるかどうかを再確認してください。

于 2012-09-24T18:20:58.783 に答える