private function transform(KalturaBatchJob $job, KalturaTransformMetadataJobData $data) { $pager = new KalturaFilterPager(); $pager->maxPageSize = 40; if ($this->taskConfig->params && $this->taskConfig->params->maxObjectsEachRun) { $pager->maxPageSize = $this->taskConfig->params->maxObjectsEachRun; } $transformList = $this->kClient->metadataBatch->getTransformMetadataObjects($data->metadataProfileId, $data->srcVersion, $data->destVersion, $pager); if (!$transformList->totalCount) { if (!$transformList->lowerVersionCount) { $this->closeJob($job, null, null, 'All metadata transformed', KalturaBatchJobStatus::FINISHED); return $job; } $this->closeJob($job, null, null, "Waiting for metadata objects [{$transformList->lowerVersionCount}] of lower versions", KalturaBatchJobStatus::RETRY); return $job; } if ($transformList->lowerVersionCount || $transformList->totalCount) { $this->kClient->batch->resetJobExecutionAttempts($job->id, $this->getExclusiveLockKey(), $job->jobType); } foreach ($transformList->objects as $object) { $xml = kXsd::transformXmlData($object->xml, $data->destXsdPath, $data->srcXslPath); if ($xml) { $this->kClient->metadata->update($object->id, $xml); } else { $this->kClient->metadata->invalidate($object->id); } } $this->closeJob($job, null, null, "Metadata objects [" . count($transformList->objects) . "] transformed", KalturaBatchJobStatus::RETRY); return $job; }
private function upgrade(KalturaBatchJob $job, KalturaTransformMetadataJobData $data) { KalturaLog::debug("transform({$job->id})"); if ($this->taskConfig->params->multiRequestSize) { $this->multiRequestSize = $this->taskConfig->params->multiRequestSize; } $pager = new KalturaFilterPager(); $pager->maxPageSize = 40; if ($this->taskConfig->params && $this->taskConfig->params->maxObjectsEachRun) { $pager->maxPageSize = $this->taskConfig->params->maxObjectsEachRun; } $transformList = $this->kClient->metadataBatch->getTransformMetadataObjects($data->metadataProfileId, $data->srcVersion, $data->destVersion, $pager); if (!$transformList->totalCount) { if (!$transformList->lowerVersionCount) { $this->closeJob($job, null, null, 'All metadata transformed', KalturaBatchJobStatus::FINISHED); return $job; } $this->closeJob($job, null, null, "Waiting for metadata objects [{$transformList->lowerVersionCount}] of lower versions", KalturaBatchJobStatus::RETRY); return $job; } if ($transformList->lowerVersionCount || $transformList->totalCount) { $this->kClient->batch->resetJobExecutionAttempts($job->id, $this->getExclusiveLockKey(), $job->jobType); } $this->kClient->startMultiRequest(); $transformObjectIds = array(); foreach ($transformList->objects as $object) { /* @var $object KalturaMetadata */ $xml = kXsd::transformXmlData($object->xml, $data->destXsdPath, $data->srcXslPath); if ($xml) { $this->kClient->metadata->update($object->id, $xml, $object->version); } else { $this->kClient->metadata->invalidate($object->id, $object->version); } $transformObjectIds[] = $object->id; if ($this->kClient->getMultiRequestQueueSize() >= $this->multiRequestSize) { $results = $this->kClient->doMultiRequest(); $this->invalidateFailedMetadatas($results, $transformObjectIds); $transformObjectIds = array(); $this->kClient->startMultiRequest(); } } $results = $this->kClient->doMultiRequest(); $this->invalidateFailedMetadatas($results, $transformObjectIds); $this->closeJob($job, null, null, "Metadata objects [" . count($transformList->objects) . "] transformed", KalturaBatchJobStatus::RETRY); return $job; }