我有一个名为parser2的模块,它从html页面进行解析。一切都很完美,除了 cron 时间表。它只是没有将我的任务添加到 cron 任务中,并且在日志中,每次 cron 运行时,我看到有 0 个计划任务。下一个问题,如果我在白屏死机后手动启动 cron 几次,唯一对我有帮助的一件事,它从数据库和 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);
};
}
尝试获取代码生成的 cron 命令,然后在命令行中运行它以确保它是正确的,同时仔细检查您的脚本正在运行的用户是否有权添加新任务。