setDescription('Start the scheduler'); return $this; } public function requireSetup() { return true; } public function execute(InputInterface $input, OutputInterface $output) { $this->checkSetup(); $logger = new Logger('Task logger'); $streamHandler = new Handler\StreamHandler(fopen('php://stdout', 'a'), $input->getOption('verbose') ? Logger::DEBUG : Logger::WARNING); $logger->pushHandler($streamHandler); $logfile = __DIR__ . '/../../../../logs/scheduler.log'; $rotateHandler = new Handler\RotatingFileHandler($logfile, 10); $logger->pushHandler($rotateHandler); try { $scheduler = new task_Scheduler($logger); $scheduler->run(); } catch (\Exception $e) { switch ($e->getCode()) { // 114 : aka EALREADY (Operation already in progress) case task_Scheduler::ERR_ALREADY_RUNNING: $exitCode = task_Scheduler::ERR_ALREADY_RUNNING; break; default: $exitCode = 1; // default exit code (error) break; } return $exitCode; } } }