/**
  * Loads the configuration file and initializes the scheduler accordingly.
  * Inits all workers
  * @param string $configFileName
  */
 private function loadConfig($configFileName = null)
 {
     $firstLoad = is_null($this->schedulerConfig);
     if ($firstLoad) {
         $this->schedulerConfig = new KSchedulerConfig($configFileName);
         date_default_timezone_set($this->schedulerConfig->getTimezone());
         $pid = $this->schedulerConfig->getLogDir() . '/batch.pid';
         if (file_exists($pid)) {
             KalturaLog::err("Scheduler already running - pid[" . file_get_contents($pid) . "]");
             exit(1);
         }
         file_put_contents($pid, getmypid());
         KalturaLog::info(file_get_contents('VERSION.txt'));
         $this->loadRunningTasks();
     } else {
         if (!$this->schedulerConfig->reloadRequired()) {
             return;
         }
         sleep(2);
         // make sure the file finsied to be written
         $this->schedulerConfig->load();
     }
     KScheduleHelperManager::clearFilters();
     $this->queueSizes = array();
     KalturaLog::info("Loading configuration file at: " . date('Y-m-d H:i'));
     $configItems = $this->createConfigItem($this->schedulerConfig->toArray());
     $taskConfigs = $this->schedulerConfig->getTaskConfigList();
     $this->logDir = $this->schedulerConfig->getLogDir();
     $this->statusInterval = $this->schedulerConfig->getStatusInterval();
     $this->schedulerStatusInterval = $this->schedulerConfig->getSchedulerStatusInterval();
     KDwhClient::setEnabled($this->schedulerConfig->getDwhEnabled());
     KDwhClient::setFileName($this->schedulerConfig->getDwhPath());
     $this->logWorkerInterval = $this->schedulerConfig->getLogWorkerInterval();
     $taskConfigsValidations = array();
     foreach ($taskConfigs as $taskConfig) {
         /* @var $taskConfig KSchedularTaskConfig */
         if (is_null($taskConfig->type)) {
             // is the scheduler itself
             continue;
         }
         if (isset($taskConfigsValidations[$taskConfig->id])) {
             KalturaLog::err("Duplicated worker id [{$taskConfig->id}] in worker names [{$taskConfig->name}] and [" . $taskConfigsValidations[$taskConfig->id] . "]");
             $this->keepRunning = false;
             return;
         }
         if (in_array($taskConfig->name, $taskConfigsValidations)) {
             KalturaLog::err("Duplicated worker name [{$taskConfig->name}] in worker ids [{$taskConfig->id}] and [" . array_search($taskConfig->name, $taskConfigsValidations) . "]");
             $this->keepRunning = false;
             return;
         }
         $taskConfigsValidations[$taskConfig->id] = $taskConfig->name;
         $subConfigItems = $this->createConfigItem($taskConfig->toArray(), $taskConfig->id, $taskConfig->name);
         $configItems = array_merge($configItems, $subConfigItems);
     }
     KalturaLog::info("sending configuration to the server");
     KScheduleHelperManager::saveConfigItems($configItems);
 }
示例#2
0
<?php

$newDir = $argv[1];
$oldDir = $argv[2];
require_once __DIR__ . "/bootstrap.php";
$hosts = array('ny-batch1', 'ny-batch2', 'ny-batch3', 'ny-batch4', 'ny-batch5', 'ny-batch6', 'ny-cencoder2', 'ny-cencoder3', 'ny-encoder10', 'ny-encoder11', 'ny-encoder12', 'ny-encoder13', 'ny-encoder14', 'ny-encoder15', 'ny-encoder16', 'ny-encoder17', 'ny-encoder18', 'ny-encoder19', 'ny-encoder2', 'ny-encoder20', 'ny-encoder21', 'ny-encoder22', 'ny-encoder3', 'ny-encoder4', 'ny-encoder5', 'ny-encoder6', 'ny-encoder7', 'ny-encoder8', 'ny-encoder9', 'ny-fms1', 'ny-vmwin', 'ny-vmwin1', 'NY-VMWIN10', 'NY-VMWIN11', 'NY-VMWIN12', 'NY-VMWIN13', 'NY-VMWIN14', 'NY-VMWIN15', 'ny-vmwin2', 'ny-vmwin3', 'NY-VMWIN4', 'NY-VMWIN5', 'NY-VMWIN6', 'NY-VMWIN7', 'NY-VMWIN8', 'NY-VMWIN9', 'ny-vmwin-small', 'ny-win1', 'ny-win3', 'ny-win4', 'ny-xserve1', 'pa-batch1', 'pa-batch2', 'pa-batch3', 'pa-batch4', 'pa-batch5', 'pa-batch6', 'pa-cencoder2', 'pa-cencoder3', 'pa-encoder10', 'pa-encoder11', 'pa-encoder12', 'pa-encoder13', 'pa-encoder14', 'pa-encoder15', 'pa-encoder16', 'pa-encoder17', 'pa-encoder18', 'pa-encoder19', 'pa-encoder2', 'pa-encoder20', 'pa-encoder21', 'pa-encoder22', 'pa-encoder23', 'pa-encoder24', 'pa-encoder3', 'pa-encoder4', 'pa-encoder5', 'pa-encoder6', 'pa-encoder7', 'pa-encoder8', 'pa-encoder9', 'pa-fms1', 'pa-reports', 'pa-vmwin', 'pa-vmwin1', 'pa-vmwin10', 'pa-vmwin11', 'pa-vmwin12', 'pa-vmwin13', 'pa-vmwin14', 'pa-vmwin15', 'pa-vmwin2', 'pa-vmwin3', 'pa-vmwin4', 'pa-vmwin5', 'pa-vmwin6', 'pa-vmwin7', 'pa-vmwin8', 'pa-vmwin9', 'pa-vmwin-small', 'PA-WIN1', 'pa-win3', 'pa-win4', 'pa-xserve1', 'vmwin-small');
foreach ($hosts as $host) {
    KSchedulerConfig::setHostname($host);
    $newConfig = new KSchedulerConfig($newDir);
    $oldConfig = new KSchedulerConfig($oldDir);
    $array1 = $newConfig->toArray();
    $array2 = $oldConfig->toArray();
    $diff1 = array_diff($array1, $array2);
    $diff2 = array_diff($array2, $array1);
    if (count($diff1)) {
        KalturaLog::info("Host {$host} [" . print_r($diff1, true) . "]");
    }
    if (count($diff2)) {
        KalturaLog::info("Host {$host} [" . print_r($diff2, true) . "]");
    }
    if (!count($diff1) && !count($diff2)) {
        KalturaLog::info("Host {$host} OK");
    }
}