/** * @param integer $time start time */ public function start($time = null) { try { if (is_null($time)) { $time = time(); } $this->start_time = $time; $this->logger->info("start. date:" . date("Y-m-d H:i:s", $time) . ". pid:" . getmypid()); $pool = new Pool(); foreach ($this->missions as $mission) { if (!$mission->needRun($time)) { continue; } try { $mission->start(); } catch (\Exception $e) { $this->logException($e); } $pool->submit($mission); } $pool->wait(); } catch (\Exception $e) { $this->logException($e); } unset($pool); }
/** * start monitor * this method will block */ public function start() { pcntl_signal(SIGTERM, array($this, 'signal')); $this->pool->wait(); }