public function run()
{
if ($this->reparse_lock->acquire()) {
if ($this->resume_data === null) {
$this->resume_data = $this->reparser_manager->get_resume_data($this->reparser_name);
}
/**
* @var \phpbb\textreparser\reparser_interface $reparser
*/
$reparser = $this->reparsers[$this->reparser_name];
$min = isset($this->resume_data['range-min']) ? $this->resume_data['range-min'] : self::MIN;
$current = isset($this->resume_data['range-max']) ? $this->resume_data['range-max'] : $reparser->get_max_id();
$size = isset($this->resume_data['range-size']) ? $this->resume_data['range-size'] : self::SIZE;
if ($current >= $min) {
$start = max($min, $current + 1 - $size);
$end = max($min, $current);
$reparser->reparse_range($start, $end);
$this->reparser_manager->update_resume_data($this->reparser_name, $min, $start - 1, $size);
}
$this->config->set($this->reparser_name . '_last_cron', time());
$this->reparse_lock->release();
}
}