Browse Source

#2412 Possible error in transcoder queue

Alex Trofimov 6 years ago
parent
commit
cbe872857d
2 changed files with 12 additions and 0 deletions
  1. 5 0
      inc/classes/BxDolTranscoder.php
  2. 7 0
      inc/classes/BxDolTranscoderQuery.php

+ 5 - 0
inc/classes/BxDolTranscoder.php

@@ -116,6 +116,11 @@ class BxDolTranscoder extends BxDolFactory implements iBxDolFactoryObject
         $a = BxDolTranscoderQuery::getNextInQueue (gethostname());
         foreach ($a as $r) {
             $o = self::getObjectInstance($r['transcoder_object']);
+            if (!$o) {
+                BxDolTranscoderQuery::deleteFromQueue($r['id']);
+                continue;
+            }
+
             $aQueue = $o->getDb()->getFromQueue($r['file_id_source']); 
             if (!$aQueue || $aQueue['status'] != BX_DOL_QUEUE_PENDING)
                 continue;

+ 7 - 0
inc/classes/BxDolTranscoderQuery.php

@@ -151,6 +151,13 @@ class BxDolTranscoderQuery extends BxDolDb
         return $oDb->getAll($sQuery);
     }
 
+    static public function deleteFromQueue ($iId)
+    {
+        $oDb = BxDolDb::getInstance();
+        $sQuery = $oDb->prepare("SELECT * FROM `" . self::TABLE_QUEUE . "` WHERE `id` = ?", $iId);
+        return $oDb->query($sQuery);
+    }
+
     static public function getCompletedFromQueue ($iLimit = 10)
     {
         $oDb = BxDolDb::getInstance();