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);
};
}