Changeset 867


Ignore:
Timestamp:
Feb 6, 2016, 12:54:26 AM (8 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.
Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Application/UpdateTrace.php

    r862 r867  
    29382938}
    29392939
     2940function UpdateTo867($Manager)
     2941{
     2942  $Manager->Execute('ALTER TABLE `ExportTask` ADD `TimeQueued` DATETIME NOT NULL AFTER `Id`;');
     2943  $Manager->Execute('UPDATE `ExportTask` SET `TimeQueued` = `TimeStart`');
     2944  $Manager->Execute('ALTER TABLE `ExportTask` CHANGE `TimeStart` `TimeStart` DATETIME NULL;');
     2945}
     2946
    29402947class Updates
    29412948{
     
    29742981  848 => array('Revision' => 849, 'Function' => 'UpdateTo849'),
    29752982  849 => array('Revision' => 857, 'Function' => 'UpdateTo857'),
     2983  857 => array('Revision' => 867, 'Function' => 'UpdateTo867'),
    29762984    ));
    29772985  }
  • trunk/Application/Version.php

    r866 r867  
    77
    88$Version = '1.0';
    9 $Revision = 866; // Subversion revision
    10 $DatabaseRevision = 857; // Database structure revision
     9$Revision = 867; // Subversion revision
     10$DatabaseRevision = 867; // Database structure revision
    1111$ReleaseDate = strtotime('2016-02-05');
  • 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';
  • trunk/Modules/Export/ProcessTask.php

    r848 r867  
    5050{
    5151  //TMP="Z:\\a\\www\\wowpreklad\\tmp\\Export\\${EXPORTID}\\"
    52   $patch = str_replace(DIRECTORY_SEPARATOR,'\\',$patch);
     52  $patch = str_replace(DIRECTORY_SEPARATOR,'\\', $patch);
    5353  $patch = 'Z:'.$patch;
    5454  return $patch;
     
    9797{
    9898  // DBC files
    99   $DbResult = $System->Database->query('SELECT `ExportTask`.`Export`, `Export`.`Id` AS `ExportId` FROM `ExportTask`'.
    100     ' LEFT JOIN `Export` ON `Export`.`Id` = `ExportTask`.`Export` WHERE `Export`.`OutputType` = 9 AND `ExportTask`.`TimeFinish` IS NULL');
     99  $DbResult = $System->Database->query('SELECT `ExportTask`.`Id`, `ExportTask`.`Export`, `Export`.`Id` AS `ExportId` FROM `ExportTask`'.
     100    ' LEFT JOIN `Export` ON `Export`.`Id` = `ExportTask`.`Export` WHERE (`Export`.`OutputType` = 9) '.
     101    ' AND (`ExportTask`.`TimeFinish` IS NULL)');
    101102  while($DbRow = $DbResult->fetch_assoc())
    102103  {
     
    106107      try
    107108      {
     109        $System->Database->update('ExportTask', '`Id`='.$DbRow['Id'], array('TimeStart' => 'NOW()'));
     110
    108111        $Export = new Export($System);
    109112        $Export->Id = $DbRow['ExportId'];
    110113        $Export->Init();
    111114
    112         SetProgress($Export,10);
     115        SetProgress($Export, 10);
    113116
    114117        echo('Mazání starých souborů...'."\n");
     
    118121        if(file_exists($Export->TempDir.'CzWoW_DBC.zip')) unlink($Export->TempDir.'CzWoW_DBC.zip');
    119122
    120         SetProgress($Export,20);
     123        SetProgress($Export, 20);
    121124        if(function_exists('gzcompress'))
    122125        {
     
    125128          exec('zip -r -j '.$Export->TempDir.'CzWoW_DBC.zip '.$Export->TempDir.'dbc/');
    126129          echo('Hotovo'."\n");
    127           SetProgress($Export,80);
     130          SetProgress($Export, 80);
    128131        } else echo('Funkce pro tvorbu Zip souboru není podporována!'."\n");
    129132        $System->Database->query('UPDATE `ExportTask` SET `TimeFinish`=NOW() WHERE `Export`='.$Export->Id);
     
    132135        echo 'Caught exception: ',  $e->getMessage(), "\n";
    133136      }
    134       SetProgress($Export,100);
     137      SetProgress($Export, 100);
    135138    } else
    136139    {
     
    140143  }
    141144
    142   //EXE files
    143   $DbResult = $System->Database->query('SELECT `ExportTask`.`Export`, `Export`.`Id` AS `ExportId` FROM `ExportTask`'.
    144     ' LEFT JOIN `Export` ON `Export`.`Id` = `ExportTask`.`Export` WHERE `Export`.`OutputType` = 10 AND `ExportTask`.`TimeFinish` IS NULL');
     145  // EXE files
     146  $DbResult = $System->Database->query('SELECT `ExportTask`.`Id`, `ExportTask`.`Export`, `Export`.`Id` AS `ExportId` FROM `ExportTask`'.
     147    ' LEFT JOIN `Export` ON `Export`.`Id` = `ExportTask`.`Export` WHERE (`Export`.`OutputType` = 10) '.
     148    ' AND (`ExportTask`.`TimeFinish` IS NULL)');
    145149  while($DbRow = $DbResult->fetch_assoc())
    146150  {
     
    150154      try
    151155      {
     156        $System->Database->update('ExportTask', '`Id`='.$DbRow['Id'], array('TimeStart' => 'NOW()'));
    152157     // echo shell_exec('"'.dirname(__FILE__).'./client_cz_export.sh" '.$DbRow['ExportId'].'');
    153158
     
    161166
    162167        // Delete old files
    163         SetProgress($Export,1);
     168        SetProgress($Export, 1);
    164169        echo('Delete old files...'."\n");
    165170        DeleteOldFiles($Export->TempDir.'dbc');
     
    168173
    169174        //copy need files
    170         SetProgress($Export,5);
     175        SetProgress($Export, 5);
    171176        echo('Copy files...'."\n");
    172177        rcopy('files/'.$Export->ClientVersion['Version'].'/patch-5.MPQ', $Export->TempDir.'patch-5.MPQ');
     
    177182        rcopy('files/Fonts/', $Export->TempDir.'Fonts/');
    178183
    179         SetProgress($Export,10);
     184        SetProgress($Export, 10);
    180185        echo('Export lua...'."\n");
    181186        $Export->ExportToLua();
    182         SetProgress($Export,15);
     187        SetProgress($Export, 15);
    183188        echo('Export CzWoW...'."\n");
    184189        $Export->MakeAddon();
    185         SetProgress($Export,30);
     190        SetProgress($Export, 30);
    186191        echo('Export dbc...'."\n");
    187192        $Export->ExportToDBC();
    188193
    189194        echo('Create readme...'."\n");
    190         SetProgress($Export,60);
     195        SetProgress($Export, 60);
    191196        $File = new FileStream();
    192197        $File->CreateFile($Export->TempDir.'ReadMe.htm');
     
    195200
    196201        echo('Packing files...'."\n");
    197         SetProgress($Export,70);
    198         $workdir = str_replace('/',DIRECTORY_SEPARATOR,$Export->TempDir);
     202        SetProgress($Export, 70);
     203        $workdir = str_replace('/',DIRECTORY_SEPARATOR, $Export->TempDir);
    199204        MPQPack($workdir.'lua');
    200         SetProgress($Export,80);
     205        SetProgress($Export, 80);
    201206        MPQPack($workdir.'dbc');
    202207
    203         SetProgress($Export,90);
     208        SetProgress($Export, 90);
    204209        echo('Creating instalator...'."\n");
    205210        if (DIRECTORY_SEPARATOR == '/') // linux
     
    209214          echo exec('"'.$workdir.$nsifile.'" '); //"c:\Program Files (x86)\NSIS\makensisw.exe" /Xscriptcmd
    210215
    211         SetProgress($Export,100);
     216        SetProgress($Export, 100);
    212217        echo ("\n"."Hotovo"."\n");
    213218        $System->Database->query('UPDATE `ExportTask` SET `TimeFinish`=NOW() WHERE `Export`='.$DbRow['Export']);
    214219      } catch (Exception $e)
    215220      {
    216         echo 'Caught exception: ',  $e->getMessage(), "\n";
     221        echo 'Caught exception: ', $e->getMessage(), "\n";
    217222      }
    218223    } else
  • trunk/Modules/Export/cmdmpqexport.php

    r848 r867  
    8585
    8686if(array_key_exists('needgeneration', $_GET)) {
    87   $DbRows = $System->Database->query('SELECT `ClientVersion`.`Version` as Version, `Export`.`Id`,`Export`.`ClientVersion`,`Export`.`OutputType`,`Export`.`Title`,`Export`.`Description` FROM `Export` JOIN `ClientVersion` as `ClientVersion` ON `ClientVersion`.`Id`=`Export`.`ClientVersion` WHERE `Featured`=1 ORDER BY `ClientVersion`.`BuildNumber` DESC');
     87  $DbRows = $System->Database->query('SELECT `ClientVersion`.`Version` AS `Version`, '.
     88    '`Export`.`Id`,`Export`.`ClientVersion`,`Export`.`OutputType`,`Export`.`Title`,'.
     89    '`Export`.`Description` FROM `Export` '.
     90    'JOIN `ClientVersion` AS `ClientVersion` ON `ClientVersion`.`Id`=`Export`.`ClientVersion` '.
     91    'WHERE `Featured`=1 ORDER BY `ClientVersion`.`BuildNumber` DESC');
    8892  while ($DbExport = $DbRows->fetch_assoc()) {
    8993  $Export = new Export($System);
     
    9195  $Output .= $Export->Init();
    9296  if ($Export->NeedGeneration()) {
    93     $DbResult = $System->Database->query('SELECT * FROM ExportTask WHERE Export = '.$Export->Id);
     97    $DbResult = $System->Database->query('SELECT * FROM `ExportTask` WHERE `Export` = '.$Export->Id);
    9498    if($DbResult->num_rows == 0)
    9599    {
    96       $System->Database->query('INSERT INTO ExportTask (`Export` ,`TimeStart` ) VALUES ('.$Export->Id.', NOW())');
     100      $System->Database->query('INSERT INTO `ExportTask` (`Export` ,`TimeStart` ) VALUES ('.$Export->Id.', NOW())');
    97101    } else
    98       $System->Database->query('UPDATE ExportTask SET `TimeStart` = NOW(), `Progress` = 0, `TimeFinish` = NULL WHERE Export = '.$Export->Id);
     102      $System->Database->query('UPDATE `ExportTask` SET `TimeStart` = NOW(), `Progress` = 0, `TimeFinish` = NULL WHERE `Export` = '.$Export->Id);
    99103
    100104    $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování dbc souboru', LOG_TYPE_DOWNLOAD);
  • trunk/locale/cs.php

    r866 r867  
    517517        'Estimated remaining time' => 'Odhadovaný zbývající čas',
    518518        'Elapsed time' => 'Uplynulý čas',
     519        'Regenerate' => 'Přegenerovat',
    519520      ),
    520521      'URL' => array(
Note: See TracChangeset for help on using the changeset viewer.