add code
This commit is contained in:
parent
0ffab55fa0
commit
df89d1d416
1
Buddha.pid
Normal file
1
Buddha.pid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
42
|
|
@ -4,7 +4,7 @@ return [
|
||||||
'default' => [
|
'default' => [
|
||||||
'driver' => 'mysql',
|
'driver' => 'mysql',
|
||||||
'host' => '127.0.0.1',
|
'host' => '127.0.0.1',
|
||||||
'database' => 'saiadmin',
|
'database' => 'blog',
|
||||||
'username' => 'root',
|
'username' => 'root',
|
||||||
'password' => '123456',
|
'password' => '123456',
|
||||||
'port' => 3306,
|
'port' => 3306,
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<?php
|
<?php
|
||||||
return [
|
return [
|
||||||
"default" => [
|
"default" => [
|
||||||
"min" => 100,
|
"min" => 10,
|
||||||
"max" => 200,
|
"max" => 20,
|
||||||
"idleTime" => 30
|
"idleTime" => 20
|
||||||
]
|
]
|
||||||
];
|
];
|
|
@ -8,6 +8,8 @@ use Core\annotations\RequestMapping;
|
||||||
use Core\http\Request;
|
use Core\http\Request;
|
||||||
use Core\http\Response;
|
use Core\http\Response;
|
||||||
use Core\init\MyDB;
|
use Core\init\MyDB;
|
||||||
|
use DI\Attribute\Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Bean()
|
* @Bean()
|
||||||
*/
|
*/
|
||||||
|
@ -22,6 +24,8 @@ class UserController
|
||||||
* @Value ()
|
* @Value ()
|
||||||
*/
|
*/
|
||||||
public $version = '1.0';
|
public $version = '1.0';
|
||||||
|
#[Inject]
|
||||||
|
private User $user;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @RequestMapping(value="/user/test")
|
* @RequestMapping(value="/user/test")
|
||||||
|
@ -48,4 +52,13 @@ class UserController
|
||||||
{
|
{
|
||||||
$response->writeRedirect('http://www.baihand.com');
|
$response->writeRedirect('http://www.baihand.com');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @RequestMapping(value="/user/json")
|
||||||
|
*/
|
||||||
|
public function json()
|
||||||
|
{
|
||||||
|
$user = $this->user::first();
|
||||||
|
return ['code' => 1, 'msg' => 'success', 'data' => $user];
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -44,9 +44,27 @@ abstract class DBPool
|
||||||
if ($dbObject) {
|
if ($dbObject) {
|
||||||
$dbObject->usedTime = time();
|
$dbObject->usedTime = time();
|
||||||
}
|
}
|
||||||
|
$res = $this->pdoPing($dbObject->db);
|
||||||
|
if (!$res) {
|
||||||
|
$this->count--;
|
||||||
|
$this->addDBToPool();
|
||||||
|
return $this->getConnection();
|
||||||
|
}
|
||||||
return $dbObject;
|
return $dbObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function pdoPing($dbconn){
|
||||||
|
try{
|
||||||
|
$dbconn->getAttribute(\PDO::ATTR_SERVER_INFO);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
/*if(strpos($e->getMessage(), 'MySQL server has gone away')!==false){
|
||||||
|
return false;
|
||||||
|
}*/
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public function close($conn)
|
public function close($conn)
|
||||||
{
|
{
|
||||||
if ($conn) {
|
if ($conn) {
|
||||||
|
@ -71,7 +89,7 @@ abstract class DBPool
|
||||||
|
|
||||||
public function cleanPool()
|
public function cleanPool()
|
||||||
{
|
{
|
||||||
if ($this->conns->length() < $this->min && $this->conns->length()<intval($this->max*0.6)) {
|
if ($this->conns->length() < $this->min && $this->conns->length()<intval($this->max * 0.6)) {
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
$dbbak = [];
|
$dbbak = [];
|
||||||
|
|
|
@ -24,7 +24,9 @@ class PDOPool extends DBPool
|
||||||
$password = $default["password"];
|
$password = $default["password"];
|
||||||
$dsn = "$driver:host=$host;dbname=$dbname";
|
$dsn = "$driver:host=$host;dbname=$dbname";
|
||||||
}
|
}
|
||||||
|
$options = array(
|
||||||
|
\PDO::ATTR_PERSISTENT => true
|
||||||
|
);
|
||||||
$pdo = new \PDO($dsn, $username, $password);
|
$pdo = new \PDO($dsn, $username, $password);
|
||||||
return $pdo;
|
return $pdo;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,6 @@ class HttpServer
|
||||||
|
|
||||||
public function __construct($str = 'dd')
|
public function __construct($str = 'dd')
|
||||||
{
|
{
|
||||||
var_dump($str);
|
|
||||||
if ($str == 'dd') return;
|
if ($str == 'dd') return;
|
||||||
$this->server = new Server("0.0.0.0",8085);
|
$this->server = new Server("0.0.0.0",8085);
|
||||||
//配置参数 https://wiki.swoole.com/#/server/setting
|
//配置参数 https://wiki.swoole.com/#/server/setting
|
||||||
|
@ -27,18 +26,22 @@ class HttpServer
|
||||||
$this->server->on('ShutDown', [$this, 'onShutDown']);
|
$this->server->on('ShutDown', [$this, 'onShutDown']);
|
||||||
|
|
||||||
$this->server->on('WorkerStart',[$this,'onWorkerStart']);
|
$this->server->on('WorkerStart',[$this,'onWorkerStart']);
|
||||||
|
$this->server->on('ManagerStart', [$this,"onManagerStart"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onWorkerStart(Server $server,int $workerId)
|
public function onWorkerStart(Server $server,int $workerId)
|
||||||
{
|
{
|
||||||
//cli_set_process_title("ttt worker"); //设置进程名称
|
//cli_set_process_title('baihand worker');//设置进程名称
|
||||||
//把index文件里的代码搬过来
|
|
||||||
\Core\BeanFactory::init();
|
\Core\BeanFactory::init();
|
||||||
$this->dispatcher = \Core\BeanFactory::getBean('RouterCollector')->getDispatcher();
|
$this->dispatcher = \Core\BeanFactory::getBean('RouterCollector')->getDispatcher();
|
||||||
}
|
}
|
||||||
|
public function onManagerStart(Server $server)
|
||||||
|
{
|
||||||
|
//cli_set_process_title('baihand manger');
|
||||||
|
}
|
||||||
public function onStart(Server $server)
|
public function onStart(Server $server)
|
||||||
{
|
{
|
||||||
|
//cli_set_process_title('baihand manger');
|
||||||
$mid = $server->master_pid; //返回当前服务器主进程的 PID。
|
$mid = $server->master_pid; //返回当前服务器主进程的 PID。
|
||||||
file_put_contents("./Buddha.pid", $mid); //会覆盖
|
file_put_contents("./Buddha.pid", $mid); //会覆盖
|
||||||
}
|
}
|
||||||
|
@ -75,7 +78,7 @@ class HttpServer
|
||||||
|
|
||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
$p = new TestProcess();
|
//$p = new TestProcess();
|
||||||
//$this->server->addProcess($p->run());
|
//$this->server->addProcess($p->run());
|
||||||
echo '就要启动了喂......' . PHP_EOL;
|
echo '就要启动了喂......' . PHP_EOL;
|
||||||
$this->server->start();
|
$this->server->start();
|
||||||
|
|
44
index.php
44
index.php
|
@ -1,39 +1,11 @@
|
||||||
<?php
|
<?php
|
||||||
require_once __DIR__ . '/vendor/autoload.php';
|
|
||||||
|
|
||||||
use Swoole\Http\Request;
|
$a = 444;
|
||||||
use Swoole\Http\Response;
|
|
||||||
require_once __DIR__."/app/config/define.php";
|
|
||||||
|
|
||||||
\Core\BeanFactory::init();
|
try {
|
||||||
$dispatcher = \Core\BeanFactory::getBean('RouterCollector')->getDispatcher();
|
$b = 10 / 0;
|
||||||
|
}catch (Exception $e) {
|
||||||
$http = new Swoole\Http\Server("0.0.0.0",8085);
|
//echo $e->getMessage();
|
||||||
|
} finally {
|
||||||
|
var_dump('hahaha cuo la ba');
|
||||||
$http->on('request',function (Request $request,Response $response) use ($dispatcher) {
|
}
|
||||||
|
|
||||||
$myRequest = Core\http\Request::init($request);
|
|
||||||
$myResponse = \Core\http\Response::init($response);
|
|
||||||
$routeInfo = $dispatcher->dispatch($myRequest->getMethod(),$myRequest->getUri());
|
|
||||||
//var_dump($routeInfo);
|
|
||||||
switch($routeInfo[0]) {
|
|
||||||
case FastRoute\Dispatcher::NOT_FOUND:
|
|
||||||
$response->status(404);
|
|
||||||
$response->end();
|
|
||||||
break;
|
|
||||||
case FastRoute\Dispatcher::METHOD_NOT_ALLOWED:
|
|
||||||
$response->status(405);
|
|
||||||
$response->end();
|
|
||||||
break;
|
|
||||||
case FastRoute\Dispatcher::FOUND:
|
|
||||||
$handler = $routeInfo[1];
|
|
||||||
$vars = $routeInfo[2];//参数
|
|
||||||
$extVars = [$myRequest, $myResponse];
|
|
||||||
//$response->end($handler($vars, $extVars));
|
|
||||||
$myResponse->setBody($handler($vars,$extVars));
|
|
||||||
$myResponse->end();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$http->start();
|
|
171
swoole-cli.exe.stackdump
Normal file
171
swoole-cli.exe.stackdump
Normal file
|
@ -0,0 +1,171 @@
|
||||||
|
Exception: STATUS_ACCESS_VIOLATION at rip=0001008C745A
|
||||||
|
rax=00000001008308E0 rbx=0000000A00535CD0 rcx=0000000000000000
|
||||||
|
rdx=0000000000000000 rsi=00000007FFFF8F10 rdi=0000000000000060
|
||||||
|
r8 =0000000000000000 r9 =0000000A0012EEA8 r10=0000000800000000
|
||||||
|
r11=00000003FF76D542 r12=0000000000000000 r13=00006FFFFFDD0008
|
||||||
|
r14=00000007FFFF8FA0 r15=0000000100B7F110
|
||||||
|
rbp=00000001015C881F rsp=00000007FFFF8E20
|
||||||
|
program=D:\software\swoole-cli\bin\swoole-cli.exe, pid 354, thread main
|
||||||
|
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
|
||||||
|
Stack trace:
|
||||||
|
Frame Function Args
|
||||||
|
0001015C881F 0001008C745A (000000000058, 0001015C881F, 0001015C87F0, 6FFFFFDD0008) swoole-cli.exe+0x4C745A
|
||||||
|
0001015C881F 0001008CED83 (000A00000012, 000000000226, 000A0052DEE8, 000000000000) swoole-cli.exe+0x4CED83
|
||||||
|
0001015C881F 00010090A9F4 (7FFDE0E60453, 000000000088, 000000002028, 000100911940) swoole-cli.exe+0x50A9F4
|
||||||
|
00010171FBA0 000100922BC9 (000100922940, 00000000000C, 6FFFFFE134C0, 6FFFFF601B78) swoole-cli.exe+0x522BC9
|
||||||
|
000000200308 0001009231A2 (000100B7F030, 000A003C49E0, 000100A6A343, 000A00416668) swoole-cli.exe+0x5231A2
|
||||||
|
000000200308 00010091AA75 (6FFFFFFB4710, 6FFFFFE132C0, 6FFFFFF04008, 6FFFFFE13350) swoole-cli.exe+0x51AA75
|
||||||
|
000000200308 0001008A4A4A (0007FFFF9320, 000000000003, 000000000008, 6FFFFFE13330) swoole-cli.exe+0x4A4A4A
|
||||||
|
000000200308 000100A4BA74 (0001017238E0, 6FFFFFE77D00, 0001009F00C6, 000000000000) swoole-cli.exe+0x64BA74
|
||||||
|
000000000000 000100A4DA72 (000700000008, 0007FFFFA630, 0007FFFFB8B0, 0007FFFFCC38) swoole-cli.exe+0x64DA72
|
||||||
|
0007FFFF9320 0001009E2A2B (0001009CA40D, 000000000000, 000000000000, 0007FFFFB810) swoole-cli.exe+0x5E2A2B
|
||||||
|
0007FFFFA380 00010097E3E3 (00010097C6F0, 000100BBCEE8, 00010097C6E0, 000700000000) swoole-cli.exe+0x57E3E3
|
||||||
|
000000000000 000100AC434D (0007FFFFCC30, 000000000025, 0000FF52424B, 0007FFFFCA84) swoole-cli.exe+0x6C434D
|
||||||
|
000000000000 000100BDD758 (0007FFFFCC30, 000000000000, 7FFD301A8035, 0007FFFFCC50) swoole-cli.exe+0x7DD758
|
||||||
|
0007FFFFCD30 7FFD301A80A1 (000000000000, 000000000000, 000000000000, 000000000000) cygwin1.dll+0x80A1
|
||||||
|
0007FFFFFFF0 7FFD301A5C86 (000000000000, 000000000000, 000000000000, 000000000000) cygwin1.dll+0x5C86
|
||||||
|
0007FFFFFFF0 7FFD301A5D34 (000000000000, 000000000000, 000000000000, 000000000000) cygwin1.dll+0x5D34
|
||||||
|
End of stack trace
|
||||||
|
Loaded modules:
|
||||||
|
000100400000 swoole-cli.exe
|
||||||
|
7FFDE0E50000 ntdll.dll
|
||||||
|
7FFDDF570000 KERNEL32.DLL
|
||||||
|
7FFDDE170000 KERNELBASE.dll
|
||||||
|
0003F3540000 cygbrotlienc-1.dll
|
||||||
|
0003F38F0000 cygMagickWand-7.Q16HDRI-7.dll
|
||||||
|
0003F3A30000 cygMagickCore-7.Q16HDRI-7.dll
|
||||||
|
0003FFE60000 cygbrotlidec-1.dll
|
||||||
|
7FFDDF190000 ADVAPI32.dll
|
||||||
|
7FFDE05C0000 msvcrt.dll
|
||||||
|
0003F33C0000 cygcares-2.dll
|
||||||
|
0003FFB60000 cygcrypto-1.1.dll
|
||||||
|
7FFDDF410000 sechost.dll
|
||||||
|
0003FFE40000 cygbz2-1.dll
|
||||||
|
7FFDDE520000 bcrypt.dll
|
||||||
|
7FFDDEB80000 RPCRT4.dll
|
||||||
|
0003FFAB0000 cygcurl-4.dll
|
||||||
|
7FFDE03D0000 GDI32.dll
|
||||||
|
7FFD301A0000 cygwin1.dll
|
||||||
|
0003F41C0000 cygexslt-0.dll
|
||||||
|
7FFDDE550000 win32u.dll
|
||||||
|
7FFDDE580000 gdi32full.dll
|
||||||
|
7FFDDE7C0000 msvcp_win.dll
|
||||||
|
0003F2980000 cygfreetype-6.dll
|
||||||
|
0003FF580000 cyggmp-10.dll
|
||||||
|
0003F23D0000 cygiconv-2.dll
|
||||||
|
7FFDDE6A0000 ucrtbase.dll
|
||||||
|
7FFDDEF30000 USER32.dll
|
||||||
|
0003F20F0000 cygicui18n72.dll
|
||||||
|
0003FF4F0000 cygicuio72.dll
|
||||||
|
0003F1F30000 cygicuuc72.dll
|
||||||
|
0003EEAE0000 cygjpeg-8.dll
|
||||||
|
0003EE7B0000 cygonig-5.dll
|
||||||
|
0003EE570000 cygpng16-16.dll
|
||||||
|
0003FE600000 cygreadline7.dll
|
||||||
|
0003F5940000 cygsqlite3-0.dll
|
||||||
|
0003FE470000 cygssl-1.1.dll
|
||||||
|
0003FDF20000 cygxml2-2.dll
|
||||||
|
0003F4180000 cygxslt-1.dll
|
||||||
|
0003EDC80000 cygyaml-0-2.dll
|
||||||
|
0003FDF00000 cygz.dll
|
||||||
|
0003ED690000 cygzip-5.dll
|
||||||
|
0003FF760000 cyggcc_s-seh-1.dll
|
||||||
|
0003FF540000 cyggomp-1.dll
|
||||||
|
0003FE290000 cygstdc++-6.dll
|
||||||
|
0003F37B0000 cygX11-6.dll
|
||||||
|
0003FFE80000 cygbrotlicommon-1.dll
|
||||||
|
0003F3730000 cygXext-6.dll
|
||||||
|
0003F3420000 cygcairo-2.dll
|
||||||
|
0003F3380000 cygcgraph-6.dll
|
||||||
|
0003F3160000 cygdjvulibre-21.dll
|
||||||
|
0003F2F20000 cygfftw3-3.dll
|
||||||
|
0003F2B80000 cygfontconfig-1.dll
|
||||||
|
0003F2AE0000 cygfpx-1.dll
|
||||||
|
0003F2590000 cygglib-2.0-0.dll
|
||||||
|
0003F2520000 cyggobject-2.0-0.dll
|
||||||
|
0003EC0E0000 cyggs-9.dll
|
||||||
|
0003F0E70000 cyggvc-6.dll
|
||||||
|
0003EEBA0000 cygjbig-2.dll
|
||||||
|
0003EEA80000 cyglcms2-2.dll
|
||||||
|
0003EEA60000 cyglqr-1-0.dll
|
||||||
|
0003FED10000 cyglzma-5.dll
|
||||||
|
0003EE700000 cygpango-1.0-0.dll
|
||||||
|
0003EE6E0000 cygpangocairo-1.0-0.dll
|
||||||
|
0003EE240000 cygraqm-0.dll
|
||||||
|
0003EE060000 cygraw_r-16.dll
|
||||||
|
0003EE020000 cygrsvg-2-2.dll
|
||||||
|
0003EDE10000 cygtiff-6.dll
|
||||||
|
0003EDD80000 cygwebp-7.dll
|
||||||
|
0003EDD30000 cygwebpdemux-2.dll
|
||||||
|
0003EDD10000 cygwebpmux-3.dll
|
||||||
|
0003FF730000 cyggsasl-18.dll
|
||||||
|
0003FF4A0000 cyggssapi_krb5-2.dll
|
||||||
|
0003FEF80000 cyglber-2.dll
|
||||||
|
0003FE750000 cygidn2-0.dll
|
||||||
|
0003FEE60000 cygldap-2.dll
|
||||||
|
0003FE710000 cygnghttp2-14.dll
|
||||||
|
0003FE6B0000 cygpsl-5.dll
|
||||||
|
0003FDE50000 cygzstd-1.dll
|
||||||
|
0003FF640000 cyggcrypt-20.dll
|
||||||
|
0003FE500000 cygssh2-1.dll
|
||||||
|
0003EA300000 cygicudata72.dll
|
||||||
|
0003FE9B0000 cygncursesw-10.dll
|
||||||
|
0003ED720000 cygcrypto-1.0.0.dll
|
||||||
|
0003EDCE0000 cygxcb-1.dll
|
||||||
|
0003EDCC0000 cygxcb-render-0.dll
|
||||||
|
0003EE5D0000 cygpixman-1-0.dll
|
||||||
|
0003F3670000 cygXrender-1.dll
|
||||||
|
0003EDCB0000 cygxcb-shm-0.dll
|
||||||
|
0003F33A0000 cygcdt-5.dll
|
||||||
|
0003FF810000 cygexpat-1.dll
|
||||||
|
0003FF2E0000 cygintl-8.dll
|
||||||
|
0003FE0A0000 cyguuid-1.dll
|
||||||
|
0003FE7B0000 cygpcre-1.dll
|
||||||
|
0003EE680000 cygpathplan-4.dll
|
||||||
|
0003FF7A0000 cygffi-6.dll
|
||||||
|
0003F3FE0000 cygltdl-7.dll
|
||||||
|
0003F3610000 cygXt-6.dll
|
||||||
|
0003FF370000 cygidn-12.dll
|
||||||
|
0003EE6A0000 cygpaper-1.dll
|
||||||
|
0003F5E50000 cygtiff-7.dll
|
||||||
|
0003EDE90000 cygthai-0.dll
|
||||||
|
0003EE6C0000 cygpangoft2-1.0-0.dll
|
||||||
|
0003F2960000 cygfribidi-0.dll
|
||||||
|
0003F5ED0000 cygharfbuzz-0.dll
|
||||||
|
0003EEBC0000 cygjasper-4.dll
|
||||||
|
0003F3330000 cygcroco-0.6-3.dll
|
||||||
|
0003F2820000 cyggdk_pixbuf-2.0-0.dll
|
||||||
|
0003F2690000 cyggio-2.0-0.dll
|
||||||
|
0003F3300000 cygdeflate-0.dll
|
||||||
|
0003FEDB0000 cygsharpyuv-0.dll
|
||||||
|
0003FF0D0000 cygk5crypto-3.dll
|
||||||
|
0003FE960000 cygntlm-0.dll
|
||||||
|
0003FF000000 cygkrb5-3.dll
|
||||||
|
0003FEFE0000 cygkrb5support-0.dll
|
||||||
|
0003FFE30000 cygcom_err-2.dll
|
||||||
|
0003F1AF0000 cygunistring-5.dll
|
||||||
|
0003FE590000 cygsasl2-3.dll
|
||||||
|
0003FF510000 cyggpg-error-0.dll
|
||||||
|
0003F37A0000 cygXau-6.dll
|
||||||
|
0003F3750000 cygXdmcp-6.dll
|
||||||
|
0003F3ED0000 cygICE-6.dll
|
||||||
|
0003F38E0000 cygSM-6.dll
|
||||||
|
0003F3320000 cygdatrie-1.dll
|
||||||
|
0003F24F0000 cyggraphite2-3.dll
|
||||||
|
0003F2580000 cyggmodule-2.0-0.dll
|
||||||
|
7FFDDD8A0000 CRYPTBASE.DLL
|
||||||
|
7FFDDE9D0000 bcryptPrimitives.dll
|
||||||
|
7FFDDF530000 IMM32.DLL
|
||||||
|
7FFDD5290000 netapi32.dll
|
||||||
|
7FFDD5270000 SAMCLI.DLL
|
||||||
|
7FFDD96A0000 SAMLIB.dll
|
||||||
|
7FFDDCBD0000 NETUTILS.DLL
|
||||||
|
7FFDDCD50000 authz.dll
|
||||||
|
7FFDDCBE0000 iphlpapi.dll
|
||||||
|
7FFDDCC10000 DNSAPI.dll
|
||||||
|
7FFDE03C0000 NSI.dll
|
||||||
|
7FFDD8360000 dhcpcsvc6.DLL
|
||||||
|
7FFDD8380000 dhcpcsvc.DLL
|
||||||
|
7FFDDB630000 WINNSI.DLL
|
||||||
|
7FFDDECA0000 ws2_32.dll
|
||||||
|
7FFDDD650000 mswsock.dll
|
Loading…
Reference in New Issue
Block a user