update some doc and types

This commit is contained in:
crazywhalecc
2022-12-30 16:15:22 +08:00
parent d7e815d670
commit 96879bf415
4 changed files with 24 additions and 15 deletions

View File

@@ -18,12 +18,6 @@ $config['servers'] = [
'type' => 'http', 'type' => 'http',
'flag' => 20002, 'flag' => 20002,
], ],
[
'host' => '0.0.0.0',
'port' => 20003,
'type' => 'http',
'flag' => 20003,
],
]; ];
/* Workerman 驱动相关配置 */ /* Workerman 驱动相关配置 */

View File

@@ -12,6 +12,7 @@ use ZM\Container\ContainerHolder;
use ZM\Logger\ConsoleLogger; use ZM\Logger\ConsoleLogger;
use ZM\Middleware\MiddlewareHandler; use ZM\Middleware\MiddlewareHandler;
use ZM\Store\Database\DBException; use ZM\Store\Database\DBException;
use ZM\Store\Database\DBQueryBuilder;
use ZM\Store\Database\DBWrapper; use ZM\Store\Database\DBWrapper;
// 防止重复引用引发报错 // 防止重复引用引发报错
@@ -209,7 +210,7 @@ function db(string $name = '')
* *
* @throws DBException * @throws DBException
*/ */
function sql_builder(string $name = '') function sql_builder(string $name = ''): DBQueryBuilder
{ {
return (new DBWrapper($name))->createQueryBuilder(); return (new DBWrapper($name))->createQueryBuilder();
} }

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace ZM\Event\Listener; namespace ZM\Event\Listener;
use OneBot\Driver\Coroutine\Adaptive;
use OneBot\Driver\Process\ProcessManager; use OneBot\Driver\Process\ProcessManager;
use OneBot\Util\Singleton; use OneBot\Util\Singleton;
use ZM\Annotation\AnnotationHandler; use ZM\Annotation\AnnotationHandler;
@@ -35,6 +36,8 @@ class WorkerEventListener
// 自注册一下刷新当前进程的logger进程banner // 自注册一下刷新当前进程的logger进程banner
ob_logger_register(ob_logger()); ob_logger_register(ob_logger());
Adaptive::initWithDriver(Framework::getInstance()->getDriver());
// 如果没有引入参数disable-safe-exit则监听 Ctrl+C // 如果没有引入参数disable-safe-exit则监听 Ctrl+C
if (!Framework::getInstance()->getArgv()['disable-safe-exit'] && PHP_OS_FAMILY !== 'Windows') { if (!Framework::getInstance()->getArgv()['disable-safe-exit'] && PHP_OS_FAMILY !== 'Windows') {
SignalListener::getInstance()->signalWorker(); SignalListener::getInstance()->signalWorker();
@@ -42,12 +45,10 @@ class WorkerEventListener
// Windows 环境下,为了监听 Ctrl+C只能开启终端输入 // Windows 环境下,为了监听 Ctrl+C只能开启终端输入
if (PHP_OS_FAMILY === 'Windows') { if (PHP_OS_FAMILY === 'Windows') {
logger()->debug('监听Windows的键盘输入');
sapi_windows_set_ctrl_handler([SignalListener::getInstance(), 'signalWindowsCtrlC']); sapi_windows_set_ctrl_handler([SignalListener::getInstance(), 'signalWindowsCtrlC']);
Framework::getInstance()->getDriver()->getEventLoop()->addReadEvent(STDIN, function ($x) {});
} }
logger()->debug('Worker #' . ProcessManager::getProcessId() . ' started');
// 设置 Worker 进程的状态和 ID 等信息 // 设置 Worker 进程的状态和 ID 等信息
if (($name = Framework::getInstance()->getDriver()->getName()) === 'swoole') { if (($name = Framework::getInstance()->getDriver()->getName()) === 'swoole') {
/* @phpstan-ignore-next-line */ /* @phpstan-ignore-next-line */
@@ -88,17 +89,23 @@ class WorkerEventListener
$this->initUserPlugins(); $this->initUserPlugins();
// handle @Init annotation // handle @Init annotation
$this->dispatchInit(); Adaptive::getCoroutine()->create(function () {
$this->dispatchInit();
});
// 回显 debug 日志:进程占用的内存 // 回显 debug 日志:进程占用的内存
$memory_total = memory_get_usage() / 1024 / 1024; $memory_total = memory_get_usage() / 1024 / 1024;
logger()->debug('Worker process used ' . round($memory_total, 3) . ' MB'); logger()->debug('Worker process used ' . round($memory_total, 3) . ' MB');
} }
public function onWorkerStart1(): void
{
logger()->debug('Worker #' . ProcessManager::getProcessId() . ' started');
}
/** /**
* @throws ZMKnownException * @throws ZMKnownException
*/ */
public function onWorkerStop999() public function onWorkerStop999(): void
{ {
logger()->debug('Worker #' . ProcessManager::getProcessId() . ' stopping'); logger()->debug('Worker #' . ProcessManager::getProcessId() . ' stopping');
if (DIRECTORY_SEPARATOR !== '\\') { if (DIRECTORY_SEPARATOR !== '\\') {
@@ -110,11 +117,16 @@ class WorkerEventListener
} }
} }
public function onWorkerStop1(): void
{
logger()->debug('Worker #' . ProcessManager::getProcessId() . ' stopped');
}
/** /**
* 加载用户代码资源包括普通插件、单文件插件、Composer 插件等 * 加载用户代码资源包括普通插件、单文件插件、Composer 插件等
* @throws \Throwable * @throws \Throwable
*/ */
private function initUserPlugins() private function initUserPlugins(): void
{ {
logger()->debug('Loading user sources'); logger()->debug('Loading user sources');

View File

@@ -46,7 +46,7 @@ class Framework
public const VERSION_ID = 650; public const VERSION_ID = 650;
/** @var string 版本名称 */ /** @var string 版本名称 */
public const VERSION = '3.0.0-beta2'; public const VERSION = '3.0.0-beta3';
/** @var array 传入的参数 */ /** @var array 传入的参数 */
protected array $argv; protected array $argv;
@@ -228,7 +228,9 @@ class Framework
// 添加框架需要监听的顶层事件监听器 // 添加框架需要监听的顶层事件监听器
// worker 事件 // worker 事件
ob_event_provider()->addEventListener(WorkerStartEvent::getName(), [WorkerEventListener::getInstance(), 'onWorkerStart999'], 999); ob_event_provider()->addEventListener(WorkerStartEvent::getName(), [WorkerEventListener::getInstance(), 'onWorkerStart999'], 999);
ob_event_provider()->addEventListener(WorkerStartEvent::getName(), [WorkerEventListener::getInstance(), 'onWorkerStart1'], 1);
ob_event_provider()->addEventListener(WorkerStopEvent::getName(), [WorkerEventListener::getInstance(), 'onWorkerStop999'], 999); ob_event_provider()->addEventListener(WorkerStopEvent::getName(), [WorkerEventListener::getInstance(), 'onWorkerStop999'], 999);
ob_event_provider()->addEventListener(WorkerStopEvent::getName(), [WorkerEventListener::getInstance(), 'onWorkerStop1'], 1);
// Http 事件 // Http 事件
ob_event_provider()->addEventListener(HttpRequestEvent::getName(), [HttpEventListener::getInstance(), 'onRequest999'], 999); ob_event_provider()->addEventListener(HttpRequestEvent::getName(), [HttpEventListener::getInstance(), 'onRequest999'], 999);
ob_event_provider()->addEventListener(HttpRequestEvent::getName(), [HttpEventListener::getInstance(), 'onRequest1'], 1); ob_event_provider()->addEventListener(HttpRequestEvent::getName(), [HttpEventListener::getInstance(), 'onRequest1'], 1);