Scalr\System\Zmq\Cron\Task\Rotate::rotateTable PHP Method

rotateTable() private method

It uses delay between deletions and limit
private rotateTable ( string $query, array $opt = [], string $service = 'adodb' )
$query string SQL statement
$opt array optional Query criteria
$service string optional The database connection service from DI container
    private function rotateTable($query, $opt = array(), $service = 'adodb')
    {
        $db = \Scalr::getContainer()->{$service};
        $opt[] = $this->config()->delete['limit'];
        do {
            $db->Execute($query . " LIMIT ?", $opt);
            $affected = $db->Affected_Rows();
            $this->getLogger()->info("%d record%s %s removed", $affected, $affected != 1 ? 's' : '', $affected > 1 ? 'were' : 'was');
            if ($affected == $this->config()->delete['limit']) {
                $this->getLogger()->info("I am waiting for %d seconds before removing next records.", $this->config()->delete['sleep']);
                sleep($this->config()->delete['sleep']);
            }
        } while ($affected >= $this->config()->delete['limit']);
    }