新增调度命令

This commit is contained in:
JaguarJack 2020-07-07 16:58:16 +08:00
parent da683a3592
commit f15eedfa9c
6 changed files with 123 additions and 104 deletions

View File

@ -0,0 +1,93 @@
<?php
declare (strict_types = 1);
namespace catcher\command;
use catcher\library\crontab\ManageProcess;
use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\Output;
class CatchScheduleCommand extends Command
{
protected function configure()
{
// 指令配置
$this->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();
}
}

View File

@ -1 +0,0 @@
<?php

View File

@ -1,103 +0,0 @@
<?php
declare (strict_types = 1);
namespace catcher\command\worker;
use catcher\CatchAdmin;
use think\Config;
use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;
use think\facade\Db;
use Workerman\Worker;
class WsWorkerCommand extends Command
{
protected $address = '127.0.0.1:10001';
protected function configure()
{
// 指令配置
$this->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');
}
}

View File

@ -0,0 +1,10 @@
<?php
// +----------------------------------------------------------------------
// | CatchAdmin [Just Like ]
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
// +----------------------------------------------------------------------
// | Author: JaguarJack [ njphper@gmail.com ]
// +----------------------------------------------------------------------

View File

@ -0,0 +1,10 @@
<?php
// +----------------------------------------------------------------------
// | CatchAdmin [Just Like ]
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
// +----------------------------------------------------------------------
// | Author: JaguarJack [ njphper@gmail.com ]
// +----------------------------------------------------------------------

View File

@ -0,0 +1,10 @@
<?php
// +----------------------------------------------------------------------
// | CatchAdmin [Just Like ]
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
// +----------------------------------------------------------------------
// | Author: JaguarJack [ njphper@gmail.com ]
// +----------------------------------------------------------------------