Ignore:
Timestamp:
Feb 6, 2016, 12:54:26 AM (9 years ago)
Author:
chronos
Message:
  • Added: Export task TimeQueued time which is different to TimeStart time which is actual time when task was started to be processed.
  • Fixed: Updated also export of DBC files.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Modules/Export/ExportOutput.php

    r864 r867  
    188188
    189189  $Output = '';
    190   if(array_key_exists('Regenerate', $_POST))
    191   {
    192     $System->Database->query('UPDATE ExportTask SET TimeStart = NOW(),  `Progress`=0 , TimeFinish = NULL WHERE Export = '.$ExportId);
    193     $Output .= ShowMessage('Soubor zařazen znovu ke zpracování do fronty.');
    194     $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování dbc souboru', LOG_TYPE_DOWNLOAD);
    195   }
    196 
    197   $Output .= '<form action="?Action=View&amp;Tab=7&amp;ExportId='.$ExportId.'" method="post"><input type="submit" name="Regenerate" value="Přegenerovat"/></form><br />';
    198   $Output .= 'U DBC souborů export textů funguje jinak, protože generování je náročné, jsou požadavky zařazovány do fronty a postupně zpracovávány.<br />DBC soubory je nutné zabalit do souboru patch-enGB-5.MPQ uvnitř složky "DBFilesClient" a hru spouštět přes upravený spouštěcí soubor. Zabalit je můžete pomocí programu <a href="../download/mpqediten32.zip">Ladik\'s MPQ Editor</a>. Stav vygenerování můžete sledovat na této stránce.<br /><br />';
    199 
    200   $DbResult = $System->Database->query('SELECT * FROM ExportTask WHERE Export = '.$ExportId);
     190  $DbResult = $System->Database->query('SELECT `Id` FROM `ExportTask` WHERE (`Export` = '.$ExportId.
     191      ') AND ((`TimeFinish` < `TimeStart`) OR (`TimeFinish` IS NULL))');
    201192  if($DbResult->num_rows == 0)
    202193  {
    203     $System->Database->query('INSERT INTO ExportTask (`Export` ,`TimeStart` ) VALUES ('.$ExportId.', NOW())');
    204     $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování dbc souboru', LOG_TYPE_DOWNLOAD);
     194    if(array_key_exists('Regenerate', $_POST))
     195    {
     196      $System->Database->query('UPDATE `ExportTask` SET `TimeQueued` = NOW(), `Progress`=0 , `TimeStart` = NULL, `TimeFinish` = NULL WHERE `Export` = '.$ExportId);
     197      $Output .= ShowMessage('Soubor zařazen znovu ke zpracování do fronty.');
     198      $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování dbc souboru', LOG_TYPE_DOWNLOAD);
     199    } else {
     200      $Output .= '<form action="?Action=View&amp;Tab=7&amp;ExportId='.$ExportId.'" method="post">'.
     201        '<input type="submit" name="Regenerate" value="'.T('Regenerate').'"/></form><br />';
     202    }
     203  }
     204
     205  $Output .= 'U DBC souborů export textů funguje jinak, protože generování je náročné, '.
     206    'jsou požadavky zařazovány do fronty a postupně zpracovávány.<br />'.
     207    'DBC soubory je nutné zabalit do souboru patch-enGB-5.MPQ uvnitř složky "DBFilesClient" a '.
     208    'hru spouštět přes upravený spouštěcí soubor. Zabalit je můžete pomocí programu '.
     209    '<a href="../download/mpqediten32.zip">Ladik\'s MPQ Editor</a>. Stav vygenerování '.
     210    'můžete sledovat na této stránce.<br /><br />';
     211
     212  $DbResult = $System->Database->query('SELECT * FROM `ExportTask` WHERE `Export` = '.$ExportId);
     213  if($DbResult->num_rows == 0)
     214  {
     215    $System->Database->query('INSERT INTO `ExportTask` (`Export` ,`TimeQueued` ) VALUES ('.$ExportId.', NOW())');
     216    $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování DBC souboru', LOG_TYPE_DOWNLOAD);
    205217    $System->Database->query('UPDATE `ExportTask` SET `Progress`=0 WHERE `Export`='.$Export->Id);
    206218  }
    207219
    208   $DbResult = $System->Database->query('SELECT * FROM `ExportTask` WHERE `Export` = '.$ExportId);
     220  $DbResult = $System->Database->query('SELECT `TimeFinish` FROM `ExportTask` WHERE `Export` = '.$ExportId);
    209221  $ExportTask = $DbResult->fetch_assoc();
    210   if($ExportTask['TimeFinish'] > $ExportTask['TimeStart'])
     222  if($ExportTask['TimeFinish'] <> '')
    211223  {
    212224    $Output .= '<strong>Souhrný balík: <a href="'.$System->Link('/'.$Export->TempDirRelative.'CzWoW_DBC.zip').'">CzWoW_DBC.zip</a></strong><br/>';
     
    244256
    245257  // Check if process task is running
     258  $Timeout = 60 * 60 * 2; // two hours
    246259  $DbResult = $System->Database->query('SELECT * FROM `ExportTask` '.
    247260    'LEFT JOIN `Export` ON `Export`.`Id` = `ExportTask`.`Export` '.
    248261    'WHERE ((`Export`.`OutputType` = 9) OR (`Export`.`OutputType` = 10)) AND '.
    249     '(`TimeFinish` IS NULL) AND (`TimeStart` < (NOW() - 10000))');
     262    '(`TimeFinish` IS NULL) AND (`TimeQueued` < (NOW() - '.$Timeout.'))');
    250263  if($DbResult->num_rows > 0)
    251264  {
     
    272285    if(array_key_exists('Regenerate', $_POST))
    273286    {
    274       $System->Database->query('UPDATE `ExportTask` SET `TimeStart` = NOW(), `Progress`=0, `TimeFinish` = NULL WHERE `Export` = '.$ExportId);
     287      $System->Database->query('UPDATE `ExportTask` SET `TimeQueued` = NOW(), `Progress`=0, `TimeStart` = NULL, `TimeFinish` = NULL WHERE `Export` = '.$ExportId);
    275288      $Output .= ShowMessage('Soubor zařazen znovu ke zpracování do fronty.');
    276289      $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování exe souboru', LOG_TYPE_DOWNLOAD);
    277290    } else {
    278291      $Output .= '<form action="?Action=View&amp;Tab=7&amp;ExportId='.$ExportId.'" method="post">'.
    279         '<input type="submit" name="Regenerate" value="Přegenerovat"/></form><br />';
     292        '<input type="submit" name="Regenerate" value="'.T('Regenerate').'"/></form><br />';
    280293    }
    281294  }
     
    288301  {
    289302    $System->Database->query('INSERT INTO ExportTask (`Export` ,`TimeStart` ) VALUES ('.$ExportId.', NOW())');
    290     $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování dbc souboru', LOG_TYPE_DOWNLOAD);
    291   }
    292 
    293   $DbResult = $System->Database->query('SELECT * FROM `ExportTask` WHERE `Export` = '.$ExportId);
     303    $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování DBC souboru', LOG_TYPE_DOWNLOAD);
     304  }
     305
     306  $DbResult = $System->Database->query('SELECT `TimeFinish` FROM `ExportTask` WHERE `Export` = '.$ExportId);
    294307  $ExportTask = $DbResult->fetch_assoc();
    295   if($ExportTask['TimeFinish'] > $ExportTask['TimeStart'])
     308  if($ExportTask['TimeFinish'] <> '')
    296309  {
    297310    $FileName = 'Instalace_CzechWoW_'.$Export->ClientVersion['Version'].'.exe';
Note: See TracChangeset for help on using the changeset viewer.