4

我有一个名为 parser2 的模块,它可以从 html 页面进行解析。一切正常,除了 cron 计划。它只是没有将我的任务添加到 cron 任务中,并且在日志中,我看到有 0 个计划任务,每次 cron 运行。下一个问题,如果我手动启动 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 回答