コード例 #1
0
ファイル: singleinstance.php プロジェクト: ustream/daemon
 /**
  * @param Ustream_Daemon_Daemon $daemon
  *
  * @return Ustream_Daemon_Task
  */
 public function createTaskFor(Ustream_Daemon_Daemon $daemon)
 {
     return new Ustream_Daemon_CallbackTask(function () use($daemon) {
         $logger = new Ustream_Daemon_Logger($daemon);
         $logger->info(sprintf('Single instance'));
     });
 }
コード例 #2
0
ファイル: multiinstance.php プロジェクト: ustream/daemon
 /**
  * @param Ustream_Daemon_Daemon $daemon
  * @param int $instanceId
  * @param int $instanceCount
  *
  * @return Ustream_Daemon_Task
  */
 public function create(Ustream_Daemon_Daemon $daemon, $instanceId, $instanceCount)
 {
     return new Ustream_Daemon_CallbackTask(function () use($instanceId, $instanceCount, $daemon) {
         $logger = new Ustream_Daemon_Logger($daemon);
         $logger->info(sprintf('Instance %d/%d', $instanceId, $instanceCount));
     });
 }
コード例 #3
0
 /**
  * @static
  * @return \Ustream_Daemon_CallbackTask
  */
 public static function createTask()
 {
     return new \Ustream_Daemon_CallbackTask(function () {
         \Ustream_Daemon_Logger::getInstance()->info('common-entry-point');
     });
 }
コード例 #4
0
ファイル: Builder.php プロジェクト: ustream/daemon
 /**
  * @param Ustream_Daemon_MultiInstanceTaskFactory $taskFactory
  *
  * @throws InvalidArgumentException
  *
  * @return Ustream_Daemon_Starter
  */
 public function buildMultiInstance(Ustream_Daemon_MultiInstanceTaskFactory $taskFactory)
 {
     $this->validate();
     $opts = getopt("i:n:");
     if (!isset($opts['i']) || !is_numeric($opts['i']) || !isset($opts['n']) || !is_numeric($opts['n'])) {
         echo "Arguments: -i <0..n-1> -n <n>\nWhere n is the number of queue processors running\n";
         exit;
     }
     $this->config->multipleInstances = true;
     $this->config->instanceNumber = (int) $opts['i'];
     $daemon = new Ustream_Daemon_PreconfiguredTaskDelegator($this->id, $this->config);
     Ustream_Daemon_Logger::setInstance(new Ustream_Daemon_Logger($daemon));
     $daemon->setTask($taskFactory->create($daemon, (int) $opts['i'], (int) $opts['n']));
     return $daemon;
 }
コード例 #5
0
ファイル: CallbackTask.php プロジェクト: ustream/daemon
 /**
  * @static
  * @return Ustream_Daemon_CallbackTask
  */
 public static function nullTask()
 {
     return new Ustream_Daemon_CallbackTask(function () {
         Ustream_Daemon_Logger::getInstance()->debug('null');
     });
 }
コード例 #6
0
ファイル: Logger.php プロジェクト: ustream/daemon
 /**
  * @static
  *
  * @return void
  */
 public static function resetInstance()
 {
     self::$instance = null;
 }