> php index.php "/cron/deactivateMapData" * @param \Base $f3 */ function deactivateMapData(\Base $f3){ $privateMapLifetime = (int)$f3->get('PATHFINDER.MAP.PRIVATE.LIFETIME'); if($privateMapLifetime > 0){ $pfDB = DB\Database::instance()->getDB('PF'); $sqlDeactivateExpiredMaps = "UPDATE map SET active = 0 WHERE map.active = 1 AND map.typeId = 2 AND TIMESTAMPDIFF(DAY, map.updated, NOW() ) > :lifetime"; $pfDB->exec($sqlDeactivateExpiredMaps, ['lifetime' => $privateMapLifetime]); } } /** * delete all deactivated maps * >> php index.php "/cron/deleteMapData" * @param \Base $f3 */ function deleteMapData(\Base $f3){ $pfDB = DB\Database::instance()->getDB('PF'); $sqlDeleteDisabledMaps = "DELETE FROM map WHERE map.active = 0 AND TIMESTAMPDIFF(DAY, map.updated, NOW() ) > :deletion_time"; $pfDB->exec($sqlDeleteDisabledMaps, ['deletion_time' => self::DAYS_UNTIL_MAP_DELETION]); $deletedMapsCount = $pfDB->count(); // Log ------------------------ $log = new \Log('cron_' . __FUNCTION__ . '.log'); $log->write( sprintf(self::LOG_TEXT_MAPS, __FUNCTION__, $deletedMapsCount) ); } /** * delete expired connections (EOL connections) * >> php index.php "/cron/deleteConnections" * @param \Base $f3 */ function deleteConnections(\Base $f3){ $eolExpire = (int)$f3->get('PATHFINDER.CACHE.EXPIRE_CONNECTIONS_EOL'); if($eolExpire > 0){ $pfDB = DB\Database::instance()->getDB('PF'); $sql = "SELECT `con`.`id` FROM `connection` `con` INNER JOIN `map` ON `map`.`id` = `con`.`mapId` WHERE `map`.`deleteExpiredConnections` = :deleteExpiredConnections AND TIMESTAMPDIFF(SECOND, `con`.`eolUpdated`, NOW() ) > :expire_time "; $connectionsData = $pfDB->exec($sql, [ 'deleteExpiredConnections' => 1, 'expire_time' => $eolExpire ]); if($connectionsData){ /** * @var $connection Model\ConnectionModel */ $connection = Model\BasicModel::getNew('ConnectionModel'); foreach($connectionsData as $data){ $connection->getById( (int)$data['id'] ); if( !$connection->dry() ){ $connection->erase(); } } } } } /** * delete all expired signatures on "inactive" systems * >> php index.php "/cron/deleteSignatures" * @param \Base $f3 */ function deleteSignatures(\Base $f3){ $signatureExpire = (int)$f3->get('PATHFINDER.CACHE.EXPIRE_SIGNATURES'); if($signatureExpire > 0){ $pfDB = DB\Database::instance()->getDB('PF'); $sqlDeleteExpiredSignatures = "DELETE `sigs` FROM `system_signature` `sigs` INNER JOIN `system` ON `system`.`id` = `sigs`.`systemId` WHERE `system`.`active` = 0 AND TIMESTAMPDIFF(SECOND, `sigs`.`updated`, NOW() ) > :lifetime "; $pfDB->exec($sqlDeleteExpiredSignatures, ['lifetime' => $signatureExpire]); } } }