getCriteria(); $stUserTrackerLevel = stUserTrackerLevelPeer::doCount($c); return $stUserTrackerLevel; } public function execute(int $offset): int { $c = $this->getCriteria(); $c->setLimit(1000); $offset += stUserTrackerLevelPeer::doDelete($c); if ($offset > 0) { $this->setParameter('optimize_table', true); } return $offset; } public function started() { $this->setParameter('optimize_table', false); } public function finished() { if ($this->getParameter('optimize_table')) { Propel::getConnection()->executeQuery('OPTIMIZE TABLE ' . stUserTrackerLevelPeer::TABLE_NAME); } } protected function getCriteria(): Criteria { $c = new Criteria(); $config = stConfig::getInstance('stUserTrackerLevelBackend'); $c->add(stUserTrackerLevelPeer::UPDATED_AT, sprintf('%s < now() - INTERVAL %d DAY', stUserTrackerLevelPeer::UPDATED_AT, $config->get('cookie_terminate')), Criteria::CUSTOM); return $c; } }