/** * batch getOrCreateWorker returns a worker by name, create it if doesnt exist * * @param Scheduler $scheduler The scheduler object * @param int $workerConfigId The worker configured id * @param KalturaBatchJobType $workerType The type of the remote worker * @param string $workerName The name of the remote worker * @return Worker */ private function getOrCreateWorker(Scheduler $scheduler, $workerConfigId, $workerType = null, $workerName = null) { if (!is_null($workerType) && !is_numeric($workerType)) { $workerType = kPluginableEnumsManager::apiToCore('BatchJobType', $workerType); } $c = new Criteria(); $c->add(SchedulerWorkerPeer::SCHEDULER_CONFIGURED_ID, $scheduler->getConfiguredId()); $c->add(SchedulerWorkerPeer::CONFIGURED_ID, $workerConfigId); $workerDb = SchedulerWorkerPeer::doSelectOne($c, myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_PROPEL2)); if ($workerDb) { $shouldSave = false; if (!is_null($workerName) && $workerDb->getName() != $workerName) { $workerDb->setName($workerName); $shouldSave = true; } if (!is_null($workerType) && $workerDb->getType() != $workerType) { $workerDb->setType($workerType); $shouldSave = true; } if ($shouldSave) { $workerDb->save(); } return $workerDb; } $workerDb = new SchedulerWorker(); $workerDb->setLastStatus(time()); $workerDb->setCreatedBy("Scheduler: " . $scheduler->getName()); $workerDb->setUpdatedBy("Scheduler: " . $scheduler->getName()); $workerDb->setSchedulerId($scheduler->getId()); $workerDb->setSchedulerConfiguredId($scheduler->getConfiguredId()); $workerDb->setConfiguredId($workerConfigId); $workerDb->setDescription(''); if (!is_null($workerType)) { $workerDb->setType($workerType); } if (!is_null($workerName)) { $workerDb->setName($workerName); } $workerDb->save(); return $workerDb; }
public function toObject($dbData = null, $props_to_skip = array()) { if (is_null($dbData)) { $dbData = new SchedulerWorker(); } if (!is_null($this->statuses) && $this->statuses instanceof KalturaSchedulerStatusArray) { $dbData->setStatuses($this->statuses->toValuesArray()); } return parent::toObject($dbData, $props_to_skip); }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param SchedulerWorker $value A SchedulerWorker object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(SchedulerWorker $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getId(); } // if key === null self::$instances[$key] = $obj; } }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param SchedulerWorker $value A SchedulerWorker object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(SchedulerWorker $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getId(); } if (isset(self::$instances[$key]) || count(self::$instances) < kConf::get('max_num_instances_in_pool')) { self::$instances[$key] = $obj; kMemoryManager::registerPeer('SchedulerWorkerPeer'); } } }