Compare commits

...

8 Commits

Author SHA1 Message Date
as2252258 1643a839b3 改名 2021-11-18 11:37:13 +08:00
as2252258 d4a15d26ed 改名 2021-11-17 16:43:55 +08:00
as2252258 485d926dc0 改名 2021-11-17 16:39:12 +08:00
as2252258 6a5205e9a1 1 2021-11-11 02:22:14 +08:00
as2252258 471f7a92bb 1 2021-11-11 01:32:04 +08:00
as2252258 429ffe561c 改名 2021-11-08 11:12:53 +08:00
as2252258 27cdf5082f 改名 2021-11-08 11:10:58 +08:00
as2252258 4c3751ca4d 1 2021-11-07 03:18:27 +08:00
12 changed files with 67 additions and 167 deletions
+48 -1
View File
@@ -18,6 +18,7 @@ use Kiri\Exception\NotFindClassException;
use Kiri\Kiri;
use Psr\Log\LoggerInterface;
use Server\ServerManager;
use Swoole\Process;
use Swoole\WebSocket\Server;
if (!function_exists('make')) {
@@ -52,6 +53,38 @@ if (!function_exists('make')) {
}
if (!function_exists('checkPortIsAlready')) {
/**
* @param $port
* @return bool|string
* @throws Exception
*/
function checkPortIsAlready($port): bool|string
{
if (!Kiri::getPlatform()->isLinux()) {
exec("lsof -i :" . $port . " | grep -i 'LISTEN' | awk '{print $2}'", $output);
if (empty($output)) return false;
$output = explode(PHP_EOL, $output[0]);
return $output[0];
}
$serverPid = file_get_contents(storage('.swoole.pid'));
if (!empty($serverPid) && shell_exec('ps -ef | grep ' . $serverPid . ' | grep -v grep')) {
Process::kill($serverPid, SIGTERM);
}
exec('netstat -lnp | grep ' . $port . ' | grep "LISTEN" | awk \'{print $7}\'', $output);
if (empty($output)) {
return false;
}
return explode('/', $output[0])[0];
}
}
if (!function_exists('done')) {
/**
@@ -59,12 +92,26 @@ if (!function_exists('done')) {
*/
function done()
{
ServerManager::setEnv('state', 'exit');
set_env('state', 'exit');
}
}
if (!function_exists('set_env')) {
/**
* @param $key
* @param $value
*/
function set_env($key, $value)
{
putenv(sprintf('%s=%s', $key, $value));
}
}
if (!function_exists('enable_file_modification_listening')) {
+1 -1
View File
@@ -29,7 +29,7 @@ use Kiri\Jwt\Jwt;
use Kiri\Kiri;
use ReflectionException;
use Server\ServerManager;
use Server\SInterface\OnTaskInterface;
use Server\Contract\OnTaskInterface;
use Swoole\Table;
/**
-4
View File
@@ -136,7 +136,6 @@ class BaseObject implements Configure
$message = print_r($message, true);
}
$message = "\033[35m[" . date('Y-m-d H:i:s') . '][DEBUG]: ' . $message . "\033[0m";
$message .= PHP_EOL;
$this->logger()->debug(Logger::DEBUG, [$message, $method, $file]);
}
@@ -154,7 +153,6 @@ class BaseObject implements Configure
$message = print_r($message, true);
}
$message = "\033[34m[" . date('Y-m-d H:i:s') . '][INFO]: ' . $message . "\033[0m";
$message .= PHP_EOL;
$this->logger()->info(Logger::NOTICE, [$message, $method, $file]);
}
@@ -173,7 +171,6 @@ class BaseObject implements Configure
}
$message = "\033[36m[" . date('Y-m-d H:i:s') . '][SUCCESS]: ' . $message . "\033[0m";
$message .= PHP_EOL;
$this->logger()->notice(Logger::NOTICE, [$message, $method, $file]);
}
@@ -192,7 +189,6 @@ class BaseObject implements Configure
}
$message = "\033[33m[" . date('Y-m-d H:i:s') . '][WARNING]: ' . $message . "\033[0m";
$message .= PHP_EOL;
$this->logger()->critical(Logger::NOTICE, [$message, $method, $file]);
}
+1 -1
View File
@@ -31,7 +31,7 @@ defined('TASK_PATH') or define('TASK_PATH', APP_PATH . 'app/Async/');
defined('LISTENER_PATH') or define('LISTENER_PATH', APP_PATH . 'app/Listener/');
defined('KAFKA_PATH') or define('KAFKA_PATH', APP_PATH . 'app/Kafka/');
defined('RPC_CLIENT_PATH') or define('RPC_CLIENT_PATH', APP_PATH . 'app/Client/Rpc/');
defined('MODEL_PATH') or define('MODEL_PATH', APP_PATH . 'app/Models/');
defined('MODEL_PATH') or define('MODEL_PATH', APP_PATH . 'app/Model/');
/**
+7
View File
@@ -220,6 +220,13 @@ class Pool extends Component
return;
}
while (static::$_connections[$name]->length() > 0) {
if (static::$_connections[$name] instanceof Channel)
{
if (!Context::inCoroutine())
{
break;
}
}
$client = static::$_connections[$name]->pop();
if ($client instanceof StopHeartbeatCheck) {
$client->stopHeartbeatCheck();
+4 -4
View File
@@ -30,11 +30,11 @@ class Gii
private InputInterface $input;
public string $modelPath = APP_PATH . 'app/Models/';
public string $modelNamespace = 'App\\Models\\';
public string $modelPath = APP_PATH . 'app/Model/';
public string $modelNamespace = 'App\\Model\\';
public string $controllerPath = APP_PATH . 'app/Http/Controllers/';
public string $controllerNamespace = 'App\\Controllers\\';
public string $controllerPath = APP_PATH . 'app/Http/Controller/';
public string $controllerNamespace = 'App\\Controller\\';
public static array $createSqls = [];
+4 -4
View File
@@ -24,11 +24,11 @@ abstract class GiiBase
protected InputInterface $input;
public string $modelPath = APP_PATH . 'app/Models/';
public string $modelNamespace = 'App\Models\\';
public string $modelPath = APP_PATH . 'app/Model/';
public string $modelNamespace = 'App\Model\\';
public string $controllerPath = APP_PATH . 'app/Http/Controllers/';
public string $controllerNamespace = 'App\\Controllers\\';
public string $controllerPath = APP_PATH . 'app/Http/Controller/';
public string $controllerNamespace = 'App\\Controller\\';
public ?string $module = null;
+1 -1
View File
@@ -92,7 +92,7 @@ use Kiri\Core\Json;
use Database\Connection;
use Database\Annotation\Get;
use Database\Annotation\Set;
use Annotation\Model\Relation;
use Database\Relation;
use Database\Model;
' . PHP_EOL;
}
+1 -1
View File
@@ -31,7 +31,7 @@ class GiiTask extends GiiBase
namespace App\Async;
use Server\SInterface\OnTaskInterface;
use Server\Contract\OnTaskInterface;
';
-10
View File
@@ -1,10 +0,0 @@
<?php
namespace Kiri\Process;
interface OnProcessInterface
{
public function handle();
}
-88
View File
@@ -1,88 +0,0 @@
<?php
namespace Kiri\Process;
abstract class Process implements OnProcessInterface
{
/**
* @var \Swoole\Process
*/
protected \Swoole\Process $process;
/**
* @var mixed
*/
protected mixed $redirect_stdin_and_stdout = null;
/**
* @var int
*/
protected int $pipe_type = SOCK_DGRAM;
/**
* @var bool
*/
protected bool $enable_coroutine = true;
/**
* @var string
*/
protected string $name = '';
/**
* @return \Swoole\Process
*/
public function getProcess(): \Swoole\Process
{
return $this->process;
}
/**
* @return mixed
*/
public function getRedirectStdinAndStdout(): mixed
{
return $this->redirect_stdin_and_stdout;
}
/**
* @return int
*/
public function getPipeType(): int
{
return $this->pipe_type;
}
/**
* @return bool
*/
public function isEnableCoroutine(): bool
{
return $this->enable_coroutine;
}
/**
* @return string
*/
public function getName(): string
{
return $this->name;
}
/**
* @param \Swoole\Process $process
*/
public function start(\Swoole\Process $process)
{
$this->process = $process;
}
}
-52
View File
@@ -1,52 +0,0 @@
<?php
namespace Kiri\Process;
require_once 'OnProcessInterface.php';
require_once 'Process.php';
use function Co\run;
class TestProcess extends Process
{
protected string $name = 'test process';
/**
*/
public function onStart()
{
}
public function handle()
{
// TODO: Implement doWhile() method.
}
public function onShutdown()
{
// TODO: Implement onShutdown() method.
}
}
$array = [];
for ($i = 0; $i < 10; $i++) {
$class = new TestProcess();
$process = new \Swoole\Process([$class, 'start'], $class->getRedirectStdinAndStdout(),
$class->getPipeType(), $class->isEnableCoroutine());
$process->start();
array_push($array, $process);
}
run(function () use ($array) {
foreach ($array as $value) {
var_dump($value->getCallback());
}
});