https://www.kancloud.cn/manual/thinkphp6_0/1147857
有時候我們希望使用think的命令行運行workerman,這里做一個介紹,
通過 composer 安裝
composer require topthink/think-worker
1:先新建一個指令,參考文檔:自定義指令,比如新建命令:
php think make:command Hello hello
2:復(fù)制下面的代碼到指令里,覆蓋原始的configure和execute方法
protected function configure()
{
// 指令配置
$this->setName('convert')
->addArgument('action', Argument::OPTIONAL, "start|stop|restart|reload|status|connections", 'start')
->addOption('mode', 'm', Option::VALUE_OPTIONAL, 'Run the workerman server in daemon mode.')
->setDescription('the workerman command');
}
protected function execute(Input $input, Output $output)
{
// 指令輸出
$output->writeln('convert start');
$action = $input->getArgument('action');
$mode = $input->getOption('mode');
// 重新構(gòu)造命令行參數(shù),以便兼容workerman的命令
global $argv;
$argv = [];
array_unshift($argv, 'think', $action);
if ($mode == 'd') {
$argv[] = '-d';
} else if ($mode == 'g') {
$argv[] = '-g';
}
// 在這里放心的實例化worker,
// 就像參照workerman文檔寫一樣,
// 無非在workerman的文檔里,代碼是新建純php文件,但在這里,寫到了一個方法里.
$worker_1 = new Worker();
$worker_2 = new Worker();
Worker::runAll();
}
3:運行的時候,使用如下命令:
//臨時運行
php think hello start
//后臺運行
php think hello start --mode d
浙公網(wǎng)安備 33010602011771號