Php drupal'中的计划任务执行问题;s克朗
我有一个名为parser2的模块,它从html页面进行解析。除了cron时间表之外,一切都很好。它只是没有将我的任务添加到cron任务中,在日志中,每次cron运行时,我都会看到0个计划任务。下一个问题是,如果我手动启动cron几次,在我得到死亡的白色屏幕之后,唯一能帮助我的是,它从DB和system.table中删除parser2表,然后运行update.php。 这里是代码,应该做所有这些工作,但我不明白哪里是错误在这里Php drupal'中的计划任务执行问题;s克朗,php,drupal,drupal-7,cron,Php,Drupal,Drupal 7,Cron,我有一个名为parser2的模块,它从html页面进行解析。除了cron时间表之外,一切都很好。它只是没有将我的任务添加到cron任务中,在日志中,每次cron运行时,我都会看到0个计划任务。下一个问题是,如果我手动启动cron几次,在我得到死亡的白色屏幕之后,唯一能帮助我的是,它从DB和system.table中删除parser2表,然后运行update.php。 这里是代码,应该做所有这些工作,但我不明白哪里是错误在这里 function parser_cron_queue_info()
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命令,然后在命令行中运行它,以确保它是正确的,同时仔细检查您的脚本正在运行的用户是否具有添加新任务的权限。可能有其他方法强制在cron运行时运行此任务?不要立即看到任何错误,您是否尝试过使用xdebug手动触发代码,或者使用一个指向cron函数的简单菜单回调来解决这个问题?问题是,在日志中有关于cron run的消息,我在common.inc行中添加了显示模块是否也运行的消息。确实如此,但为什么模块没有按预期开始解析呢。此外,如果我试图从drupal管理部分手动运行cron,在几次运行后,我会看到死亡的白屏,apache日志中出现一些mysql错误。“apache日志中出现一些mysql错误”-这不是很具体…很可能是php APC引起的问题,明天会检查