public function clearMemory() { accessControlPeer::clearInstancePool(); BatchJobPeer::clearInstancePool(); BulkUploadResultPeer::clearInstancePool(); categoryPeer::clearInstancePool(); EmailIngestionProfilePeer::clearInstancePool(); entryPeer::clearInstancePool(); FileSyncPeer::clearInstancePool(); flavorAssetPeer::clearInstancePool(); flavorParamsConversionProfilePeer::clearInstancePool(); flavorParamsOutputPeer::clearInstancePool(); flavorParamsPeer::clearInstancePool(); kshowPeer::clearInstancePool(); mediaInfoPeer::clearInstancePool(); moderationFlagPeer::clearInstancePool(); moderationPeer::clearInstancePool(); notificationPeer::clearInstancePool(); roughcutEntryPeer::clearInstancePool(); SchedulerConfigPeer::clearInstancePool(); SchedulerPeer::clearInstancePool(); SchedulerStatusPeer::clearInstancePool(); SchedulerWorkerPeer::clearInstancePool(); StorageProfilePeer::clearInstancePool(); syndicationFeedPeer::clearInstancePool(); TrackEntryPeer::clearInstancePool(); uiConfPeer::clearInstancePool(); UploadTokenPeer::clearInstancePool(); // TODO clear default filters // TODO call all memory cleaner plugins if (function_exists('gc_collect_cycles')) { // php 5.3 and above gc_collect_cycles(); } }
if (is_null($entry)) { KalturaLog::err('Couldn\'t find entry [' . $entryId . ']'); continue; } if ($entry->getViews() != $views || $entry->getPlays() != $plays) { $entry->setViews($views); $entry->setPlays($plays); KalturaLog::debug('Successfully saved entry [' . $entryId . ']'); try { // update entry without setting the updated at $updateSql = "UPDATE entry set views='{$views}',plays='{$plays}' WHERE id='{$entryId}'"; $stmt = $connection->prepare($updateSql); $stmt->execute(); $affectedRows = $stmt->rowCount(); KalturaLog::log("AffectedRows: " . $affectedRows); // update sphinx log directly $sql = $sphinxMgr->getSphinxSaveSql($entry, false); $sphinxLog = new SphinxLog(); $sphinxLog->setEntryId($entryId); $sphinxLog->setPartnerId($entry->getPartnerId()); $sphinxLog->setSql($sql); $sphinxLog->save(myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_SPHINX_LOG)); } catch (Exception $e) { KalturaLog::log($e->getMessage(), Propel::LOG_ERR); } } $count++; if ($count % 500 === 0) { entryPeer::clearInstancePool(); } }
/** * * @param $getDeleted * @param $enableCache * * @return entry */ public function getEntry($getDeleted = false, $enableCache = true) { if (!$enableCache) { $this->aEntry = null; entryPeer::clearInstancePool(); } if ($this->aEntry == null && $this->getEntryId()) { if ($getDeleted) { $this->aEntry = entryPeer::retrieveByPKNoFilter($this->getEntryId()); } else { $this->aEntry = entryPeer::retrieveByPK($this->getEntryId()); } } return $this->aEntry; }
/** * Method perform a DELETE on the database, given a entry or Criteria object OR a primary key value. * * @param mixed $values Criteria or entry object or primary key or array of primary keys * which is used to create the DELETE statement * @param PropelPDO $con the connection to use * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows * if supported by native driver or if emulated using Propel. * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doDelete($values, PropelPDO $con = null) { if ($con === null) { $con = Propel::getConnection(entryPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } if ($values instanceof Criteria) { // invalidate the cache for all objects of this type, since we have no // way of knowing (without running a query) what objects should be invalidated // from the cache based on this Criteria. entryPeer::clearInstancePool(); // rename for clarity $criteria = clone $values; } elseif ($values instanceof entry) { // it's a model object // invalidate the cache for this single object entryPeer::removeInstanceFromPool($values); // create criteria based on pk values $criteria = $values->buildPkeyCriteria(); } else { // it's a primary key, or an array of pks $criteria = new Criteria(self::DATABASE_NAME); $criteria->add(entryPeer::ID, (array) $values, Criteria::IN); // invalidate the cache for this object(s) foreach ((array) $values as $singleval) { entryPeer::removeInstanceFromPool($singleval); } } // Set the correct dbName $criteria->setDbName(self::DATABASE_NAME); $affectedRows = 0; // initialize var to track total num of affected rows try { // use transaction because $criteria could contain info // for more than one table or we could emulating ON DELETE CASCADE, etc. $con->beginTransaction(); $affectedRows += BasePeer::doDelete($criteria, $con); entryPeer::clearRelatedInstancePool(); $con->commit(); return $affectedRows; } catch (PropelException $e) { $con->rollBack(); throw $e; } }
/** * * Gets all the pusers from the entry table * @param int $lastEntryDate - the last entry date * @param int $limit - the limit for the query */ private function getAllPusersInEntry($lastEntryDate, $limit) { $pusers = array(); entryPeer::clearInstancePool(); $c = new Criteria(); $c->add(entryPeer::CREATED_AT, $lastEntryDate, Criteria::GREATER_THAN); $c->addAnd(entryPeer::PUSER_ID, null, Criteria::NOT_EQUAL); $c->addAnd(entryPeer::PUSER_ID, "", Criteria::NOT_EQUAL); if ($this->partnerId) { $c->addAnd(entryPeer::PARTNER_ID, $this->partnerId, Criteria::EQUAL); } $c->addAnd(entryPeer::PARTNER_ID, $this->ignorePartners, Criteria::NOT_IN); $c->addAscendingOrderByColumn(entryPeer::CREATED_AT); $c->setLimit($limit); entryPeer::setUseCriteriaFilter(false); $entries = entryPeer::doSelect($c); entryPeer::setUseCriteriaFilter(true); foreach ($entries as $entry) { // $this->printToLog("Found entry with puser [{$entry->getPuserId()}], partner [{$entry->getPartnerId()}]"); $pusers[] = new puserDetails($entry->getPuserId(), $entry->getPartnerId()); file_put_contents($this->lastEntryFile, $entry->getCreatedAt()); } return $pusers; }
private function clearMemory() { entryPeer::clearInstancePool(); flavorAssetPeer::clearInstancePool(); FileSyncPeer::clearInstancePool(); categoryPeer::clearInstancePool(); if (class_exists('MetadataPeer')) { MetadataPeer::clearInstancePool(); MetadataProfilePeer::clearInstancePool(); } }
public static function clearMemory() { accessControlPeer::clearInstancePool(); kuserPeer::clearInstancePool(); kshowPeer::clearInstancePool(); entryPeer::clearInstancePool(); // kvotePeer::clearInstancePool(); // commentPeer::clearInstancePool(); // flagPeer::clearInstancePool(); // favoritePeer::clearInstancePool(); // KshowKuserPeer::clearInstancePool(); // MailJobPeer::clearInstancePool(); SchedulerPeer::clearInstancePool(); SchedulerWorkerPeer::clearInstancePool(); SchedulerStatusPeer::clearInstancePool(); SchedulerConfigPeer::clearInstancePool(); ControlPanelCommandPeer::clearInstancePool(); BatchJobPeer::clearInstancePool(); // PriorityGroupPeer::clearInstancePool(); BulkUploadResultPeer::clearInstancePool(); // blockedEmailPeer::clearInstancePool(); // conversionPeer::clearInstancePool(); // flickrTokenPeer::clearInstancePool(); PuserKuserPeer::clearInstancePool(); // PuserRolePeer::clearInstancePool(); PartnerPeer::clearInstancePool(); // WidgetLogPeer::clearInstancePool(); // adminKuserPeer::clearInstancePool(); // notificationPeer::clearInstancePool(); moderationPeer::clearInstancePool(); moderationFlagPeer::clearInstancePool(); roughcutEntryPeer::clearInstancePool(); // widgetPeer::clearInstancePool(); uiConfPeer::clearInstancePool(); // PartnerStatsPeer::clearInstancePool(); // PartnerActivityPeer::clearInstancePool(); ConversionProfilePeer::clearInstancePool(); // ConversionParamsPeer::clearInstancePool(); // KceInstallationErrorPeer::clearInstancePool(); FileSyncPeer::clearInstancePool(); accessControlPeer::clearInstancePool(); mediaInfoPeer::clearInstancePool(); assetParamsPeer::clearInstancePool(); assetParamsOutputPeer::clearInstancePool(); assetPeer::clearInstancePool(); conversionProfile2Peer::clearInstancePool(); flavorParamsConversionProfilePeer::clearInstancePool(); categoryPeer::clearInstancePool(); syndicationFeedPeer::clearInstancePool(); TrackEntryPeer::clearInstancePool(); // SystemUserPeer::clearInstancePool(); StorageProfilePeer::clearInstancePool(); // EmailIngestionProfilePeer::clearInstancePool(); UploadTokenPeer::clearInstancePool(); // invalidSessionPeer::clearInstancePool(); DynamicEnumPeer::clearInstancePool(); UserLoginDataPeer::clearInstancePool(); PermissionPeer::clearInstancePool(); UserRolePeer::clearInstancePool(); PermissionItemPeer::clearInstancePool(); PermissionToPermissionItemPeer::clearInstancePool(); KuserToUserRolePeer::clearInstancePool(); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaMemoryCleaner'); foreach ($pluginInstances as $pluginInstance) { $pluginInstance->cleanMemory(); } if (function_exists('gc_collect_cycles')) { // php 5.3 and above gc_collect_cycles(); } }
/** * Cleans up the environment after running a test. */ protected function tearDown() { kuserPeer::clearInstancePool(); PartnerPeer::clearInstancePool(); entryPeer::clearInstancePool(); $this->client = null; parent::tearDown(); }