diff --git a/extend/catcher/command/CatchScheduleCommand.php b/extend/catcher/command/CatchScheduleCommand.php new file mode 100644 index 0000000..6df9eee --- /dev/null +++ b/extend/catcher/command/CatchScheduleCommand.php @@ -0,0 +1,93 @@ +setName('catch:schedule') + ->addArgument('option', Argument::OPTIONAL, '[start|reload|stop|restart||status]', 'start') + ->setDescription('start task schedule'); + } + + protected function execute(Input $input, Output $output) + { + $process = new ManageProcess(); + $option = $input->getArgument('option'); + $this->{$option}($process); + } + + /** + * 进程启动 + * + * @time 2020年07月07日 + * @param ManageProcess $process + * @return void + */ + protected function start(ManageProcess $process) + { + $process->start(); + } + + /** + * 状态输出 + * + * @time 2020年07月07日 + * @param ManageProcess $process + * @return void + */ + protected function status(ManageProcess $process) + { + $process->status(); + + $this->output->info($process->output()); + } + + /** + * 停止任务 + * + * @time 2020年07月07日 + * @param ManageProcess $process + * @return void + */ + protected function stop(ManageProcess $process) + { + $process->stop(); + } + + /** + * 重启任务 + * + * @time 2020年07月07日 + * @param ManageProcess $process + * @return void + */ + protected function reload(ManageProcess $process) + { + $process->reload(); + } + + /** + * 重启 + * + * @time 2020年07月07日 + * @param ManageProcess $process + * @return void + */ + protected function restart(ManageProcess $process) + { + $process->stop(); + + $process->start(); + } +} diff --git a/extend/catcher/command/worker/ExcelTaskCommand.php b/extend/catcher/command/worker/ExcelTaskCommand.php deleted file mode 100644 index b3d9bbc..0000000 --- a/extend/catcher/command/worker/ExcelTaskCommand.php +++ /dev/null @@ -1 +0,0 @@ -setName('ws:server') - ->addArgument('option', Argument::OPTIONAL, '[start|reload|stop|restart|reload|status|connections]', 'start') - ->addOption('mode', '-m', Option::VALUE_REQUIRED, 'worker start mode') - ->addOption('number', '-n', Option::VALUE_REQUIRED, 'worker number') - ->addOption('address', '-a',Option::VALUE_REQUIRED, 'listen address, like \'127.0.0.1:9090\'') - ->setDescription('start websocket server, default listen 127.0.0.1 port 10001'); - } - - protected function execute(Input $input, Output $output) - { - $this->setWokrermanCommnd(); - - $this->start(); - } - - /** - * worker start - * - * @author JaguarJack - * @email njphper@gmail.com - * @time 2020/1/23 - * @return void - */ - protected function start() - { - $ws = new Worker(sprintf('websocket://%s', $this->getAddress())); - - $ws->count = $this->getWorkerNumber(); - - $ws->runAll(); - } - - /** - * @return string - * @author JaguarJack - * @email njphper@gmail.com - * @time 2020/1/23 - */ - protected function getAddress() - { - return $this->input->getOption('address') ? : $this->address; - } - - /** - * worker number - * - * @author JaguarJack - * @email njphper@gmail.com - * @time 2020/1/23 - * @return mixed - */ - protected function getWorkerNumber() - { - return $this->input->getOption('number') ? : 3; - } - - /** - * set workerman command - * - * @author JaguarJack - * @email njphper@gmail.com - * @time 2020/1/23 - * @return void - */ - protected function setWokrermanCommnd() - { - global $argv; - - $option = $this->input->getArgument('option'); - - $mode = $this->input->getOption('mode'); - - if ($option) { - array_unshift($argv, $mode); - } - - array_unshift($argv, $option); - - array_unshift($argv, 'catchWorker'); - } -} diff --git a/extend/catcher/library/crontab/Process.php b/extend/catcher/library/crontab/Process.php new file mode 100644 index 0000000..ef90e0a --- /dev/null +++ b/extend/catcher/library/crontab/Process.php @@ -0,0 +1,10 @@ +