49 lines
1.1 KiB
PHP
49 lines
1.1 KiB
PHP
<?php
|
|
|
|
class stDeleteUserTrackerLevelTask extends stTask
|
|
{
|
|
public function count(): int
|
|
{
|
|
$c = $this->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;
|
|
}
|
|
} |