update some doc and types

This commit is contained in:
crazywhalecc 2022-12-30 16:15:22 +08:00
parent d7e815d670
commit 96879bf415
No known key found for this signature in database
GPG Key ID: 3A96869D13956E98
4 changed files with 24 additions and 15 deletions

View File

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

View File

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

View File

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

View File

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