diff --git a/HttpServer/Server.php b/HttpServer/Server.php index 0792e915..7db2b440 100644 --- a/HttpServer/Server.php +++ b/HttpServer/Server.php @@ -20,6 +20,8 @@ use Snowflake\Core\Json; use Snowflake\Event; use Snowflake\Exception\ConfigException; use Snowflake\Exception\NotFindClassException; +use Snowflake\Process\Biomonitoring; +use Snowflake\Process\ServerInotify; use Snowflake\Snowflake; use Swoole\Process; use Swoole\Runtime; @@ -63,7 +65,9 @@ class Server extends Application private array $listenTypes = []; - private array $process = []; + private array $process = [ + 'biomonitoring' => Biomonitoring::class + ]; private array $params = []; @@ -71,12 +75,12 @@ class Server extends Application /** * @param $name * @param $process - * @param array $pramas + * @param array $params */ - public function addProcess($name, $process, $pramas = []) + public function addProcess($name, $process, $params = []) { $this->process[$name] = $process; - $this->params[$name] = $pramas; + $this->params[$name] = $params; } diff --git a/System/Process/Biomonitoring.php b/System/Process/Biomonitoring.php new file mode 100644 index 00000000..e0e39ad4 --- /dev/null +++ b/System/Process/Biomonitoring.php @@ -0,0 +1,35 @@ +getService(); + Timer::tick(1000, function () use ($server) { + clearstatcache(); + if (($size = filesize($server->setting['log_file'])) > 1024000000) { + @unlink($server->setting['log_file']); + Process::kill($server->master_pid, SIGRTMIN); + } + }); + } + +}