Example #1
0
 /**
  * {@inheritdoc}
  */
 protected function doJob(JobData $data)
 {
     $app = $data->getApplication();
     $settings = simplexml_load_string($data->getTask()->getSettings());
     $thumbnailExtraction = (bool) (string) $settings->embedded;
     Image2Image::$lookForEmbeddedPreview = $thumbnailExtraction;
     foreach ($app['phraseanet.appbox']->get_databoxes() as $databox) {
         if (!$this->isStarted()) {
             break;
         }
         $conn = $databox->get_connection();
         $sql = 'SELECT coll_id, record_id
                 FROM record
                 WHERE jeton & ' . JETON_MAKE_SUBDEF . ' > 0
                 ORDER BY record_id DESC LIMIT 0, 30';
         $stmt = $conn->prepare($sql);
         $stmt->execute();
         $rs = $stmt->fetchAll(\PDO::FETCH_ASSOC);
         $stmt->closeCursor();
         foreach ($rs as $row) {
             if (!$this->isStarted()) {
                 break;
             }
             $this->log('info', sprintf("Generate subdefs for : sbasid=%s / databox=%s / recordid=%s ", $databox->get_sbas_id(), $databox->get_dbname(), $row['record_id']));
             try {
                 $record = $databox->get_record($row['record_id']);
                 $app['subdef.generator']->generateSubdefs($record);
             } catch (\Exception $e) {
                 $this->log('warning', sprintf("Generate subdefs failed for : sbasid=%s / databox=%s / recordid=%s : %s", $databox->get_sbas_id(), $databox->get_dbname(), $row['record_id'], $e->getMessage()));
             }
             $sql = 'UPDATE record
                   SET jeton=(jeton & ~' . JETON_MAKE_SUBDEF . '), moddate=NOW()
                   WHERE record_id=:record_id';
             $stmt = $conn->prepare($sql);
             $stmt->execute([':record_id' => $row['record_id']]);
             $stmt->closeCursor();
             // rewrite metadata
             $sql = 'UPDATE record
                 SET status=(status & ~0x03),
                     jeton=(jeton | ' . JETON_WRITE_META_SUBDEF . ')
                 WHERE record_id=:record_id';
             $stmt = $conn->prepare($sql);
             $stmt->execute([':record_id' => $row['record_id']]);
             $stmt->closeCursor();
             unset($record);
         }
     }
 }
 public function testWithMultiLayer()
 {
     $source = $this->getMediaVorus()->guess(__DIR__ . '/../../../files/multi-layer.psd');
     $this->object->execute($this->specs, $source, $this->dest);
     $this->assertFileExists($this->dest);
 }
Example #3
0
 /**
  * {@inheritdoc}
  */
 protected function doJob(JobData $data)
 {
     $app = $data->getApplication();
     $settings = simplexml_load_string($data->getTask()->getSettings());
     $thumbnailExtraction = (bool) (string) $settings->embedded;
     Image2Image::$lookForEmbeddedPreview = $thumbnailExtraction;
     $sqlqmark = array();
     $sqlparms = array();
     foreach (array('image', 'video', 'audio', 'document', 'flash', 'unknown') as $type) {
         if (!isset($settings->{"type_" . $type}) || !\p4field::isno($settings->{"type_" . $type})) {
             $sqlqmark[] = '?';
             $sqlparms[] = $type;
         }
     }
     if (count($sqlqmark) == 0) {
         return;
     }
     foreach ($app->getDataboxes() as $databox) {
         if (!$this->isStarted()) {
             break;
         }
         if (count($settings->xpath("sbas[text()=" . $databox->get_sbas_id() . "]")) == 0) {
             continue;
         }
         $conn = $databox->get_connection();
         $sql = 'SELECT coll_id, record_id FROM record' . ' WHERE jeton & ' . PhraseaTokens::MAKE_SUBDEF . ' > 0' . ' AND type IN(' . implode(',', $sqlqmark) . ')' . ' ORDER BY record_id DESC LIMIT 0, 30';
         $stmt = $conn->prepare($sql);
         $stmt->execute($sqlparms);
         $rs = $stmt->fetchAll(\PDO::FETCH_ASSOC);
         $stmt->closeCursor();
         $i = 0;
         foreach ($rs as $row) {
             if (!$this->isStarted()) {
                 break;
             }
             $this->log('info', sprintf("Generate subdefs for : sbasid=%s / databox=%s / recordid=%s ", $databox->get_sbas_id(), $databox->get_dbname(), $row['record_id']));
             try {
                 $record = $databox->get_record($row['record_id']);
                 /** @var SubdefGenerator $sg */
                 $sg = $app['subdef.generator'];
                 $sg->generateSubdefs($record);
             } catch (\Exception $e) {
                 $this->log('warning', sprintf("Generate subdefs failed for : sbasid=%s / databox=%s / recordid=%s : %s", $databox->get_sbas_id(), $databox->get_dbname(), $row['record_id'], $e->getMessage()));
             }
             $sql = 'UPDATE record' . ' SET jeton=(jeton & ~(:flag)), moddate=NOW()' . ' WHERE record_id=:record_id';
             $stmt = $conn->prepare($sql);
             $stmt->execute([':record_id' => $row['record_id'], ':flag' => PhraseaTokens::MAKE_SUBDEF]);
             $stmt->closeCursor();
             // rewrite metadata
             $sql = 'UPDATE record' . ' SET jeton=(jeton | :flag)' . ' WHERE record_id=:record_id';
             $stmt = $conn->prepare($sql);
             $stmt->execute([':record_id' => $row['record_id'], ':flag' => PhraseaTokens::WRITE_META_SUBDEF | PhraseaTokens::TO_INDEX]);
             $stmt->closeCursor();
             unset($record);
             $i++;
             if ($i % 5 === 0) {
                 $app['elasticsearch.indexer']->flushQueue();
             }
         }
     }
     $app['elasticsearch.indexer']->flushQueue();
 }