Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 536e4c9bc5 | |||
| 91be2eba20 | |||
| d7f5f62c1c | |||
| 8b8bfa2a60 | |||
| 1ecf32bfa6 | |||
| 8c0c5b56c8 |
+3
-8
@@ -23,7 +23,7 @@
|
|||||||
"ext-openssl": "*",
|
"ext-openssl": "*",
|
||||||
"ext-swoole": "*",
|
"ext-swoole": "*",
|
||||||
"ext-msgpack": "*",
|
"ext-msgpack": "*",
|
||||||
"symfony/console": "^v8.0",
|
"symfony/console": "^v8.1.1",
|
||||||
"psr/log": "1.*",
|
"psr/log": "1.*",
|
||||||
"composer-runtime-api": "^2.0",
|
"composer-runtime-api": "^2.0",
|
||||||
"psr/http-server-middleware": "^1.0.2",
|
"psr/http-server-middleware": "^1.0.2",
|
||||||
@@ -32,17 +32,12 @@
|
|||||||
"nikic/php-parser": "^v5.5.0",
|
"nikic/php-parser": "^v5.5.0",
|
||||||
"ext-inotify": "*",
|
"ext-inotify": "*",
|
||||||
"game-worker/kiri-pool": "^v1.0",
|
"game-worker/kiri-pool": "^v1.0",
|
||||||
"psr/container": "^2.0",
|
"psr/container": "^2.0"
|
||||||
"swiftmailer/swiftmailer": "^v6.3.0"
|
|
||||||
},
|
},
|
||||||
"replace": {
|
"replace": {
|
||||||
"symfony/polyfill-apcu": "*",
|
"symfony/polyfill-apcu": "*",
|
||||||
"symfony/polyfill-php80": "*",
|
|
||||||
"symfony/polyfill-mbstring": "*",
|
"symfony/polyfill-mbstring": "*",
|
||||||
"symfony/polyfill-ctype": "*",
|
"symfony/polyfill-ctype": "*"
|
||||||
"symfony/polyfill-php73": "*",
|
|
||||||
"symfony/polyfill-php72": "*",
|
|
||||||
"symfony/polyfill-php81": "*"
|
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
|
|||||||
+20
-23
@@ -80,9 +80,9 @@ if (!function_exists('application')) {
|
|||||||
|
|
||||||
if (!function_exists('task')) {
|
if (!function_exists('task')) {
|
||||||
/**
|
/**
|
||||||
* @param string $handler
|
* @param string $handler
|
||||||
* @param mixed $data
|
* @param mixed $data
|
||||||
* @param int $dstWorkerId
|
* @param int $dstWorkerId
|
||||||
* @param callable|null $finishFinishCallback
|
* @param callable|null $finishFinishCallback
|
||||||
* @return void
|
* @return void
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
@@ -98,9 +98,9 @@ if (!function_exists('task')) {
|
|||||||
if (!function_exists('taskWait')) {
|
if (!function_exists('taskWait')) {
|
||||||
/**
|
/**
|
||||||
* @param string $handler
|
* @param string $handler
|
||||||
* @param mixed $data
|
* @param mixed $data
|
||||||
* @param float $timeout
|
* @param float $timeout
|
||||||
* @param int $dstWorkerId
|
* @param int $dstWorkerId
|
||||||
* @return mixed
|
* @return mixed
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@@ -166,8 +166,7 @@ if (!function_exists('isJson')) {
|
|||||||
{
|
{
|
||||||
if (is_null($string))
|
if (is_null($string))
|
||||||
return false;
|
return false;
|
||||||
return (str_starts_with($string, '{') && str_ends_with($string, '}'))
|
return (str_starts_with($string, '{') && str_ends_with($string, '}')) || (str_ends_with($string, '[') && str_starts_with($string, ']'));
|
||||||
|| (str_ends_with($string, '[') && str_starts_with($string, ']'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -176,7 +175,7 @@ if (!function_exists('instance')) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $class
|
* @param $class
|
||||||
* @param array $constrict
|
* @param array $constrict
|
||||||
* @param array $config
|
* @param array $config
|
||||||
* @return null|object
|
* @return null|object
|
||||||
@@ -195,7 +194,7 @@ if (!function_exists('call')) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $handler
|
* @param $handler
|
||||||
* @param mixed ...$params
|
* @param mixed ...$params
|
||||||
* @return mixed
|
* @return mixed
|
||||||
* @throws
|
* @throws
|
||||||
@@ -449,9 +448,9 @@ if (!function_exists('trim_blank')) {
|
|||||||
/**
|
/**
|
||||||
* 空白字符替换
|
* 空白字符替换
|
||||||
* @param string $content 内容
|
* @param string $content 内容
|
||||||
* @param int $len 截取长度
|
* @param int $len 截取长度
|
||||||
* @param string $encode 编码
|
* @param string $encode 编码
|
||||||
* @param bool $htmlTags
|
* @param bool $htmlTags
|
||||||
* @return array|string|null
|
* @return array|string|null
|
||||||
*/
|
*/
|
||||||
function trim_blank(string $content, int $len = 0, string $encode = 'utf-8', bool $htmlTags = TRUE): array|string|null
|
function trim_blank(string $content, int $len = 0, string $encode = 'utf-8', bool $htmlTags = TRUE): array|string|null
|
||||||
@@ -745,8 +744,8 @@ if (!function_exists('on')) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $name
|
* @param $name
|
||||||
* @param $callback
|
* @param $callback
|
||||||
* @param int $index
|
* @param int $index
|
||||||
* @throws
|
* @throws
|
||||||
*/
|
*/
|
||||||
@@ -779,7 +778,7 @@ if (!function_exists('off')) {
|
|||||||
if (!function_exists('process_name_set')) {
|
if (!function_exists('process_name_set')) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $pid
|
* @param int $pid
|
||||||
* @param string|null $prefix
|
* @param string|null $prefix
|
||||||
* @throws
|
* @throws
|
||||||
*/
|
*/
|
||||||
@@ -816,7 +815,7 @@ if (!function_exists('zero_full')) {
|
|||||||
if (!function_exists('env')) {
|
if (!function_exists('env')) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $key
|
* @param $key
|
||||||
* @param null $default
|
* @param null $default
|
||||||
* @return array|string|null
|
* @return array|string|null
|
||||||
*/
|
*/
|
||||||
@@ -835,7 +834,7 @@ if (!function_exists('env')) {
|
|||||||
if (!function_exists('config')) {
|
if (!function_exists('config')) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $key
|
* @param $key
|
||||||
* @param null $default
|
* @param null $default
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
@@ -850,7 +849,7 @@ if (!function_exists('config')) {
|
|||||||
if (!function_exists('created')) {
|
if (!function_exists('created')) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $key
|
* @param $key
|
||||||
* @param array $construct
|
* @param array $construct
|
||||||
* @param array $config
|
* @param array $config
|
||||||
* @return null|object
|
* @return null|object
|
||||||
@@ -1029,9 +1028,7 @@ if (!function_exists('json_log')) {
|
|||||||
];
|
];
|
||||||
$param['data'] = $data;
|
$param['data'] = $data;
|
||||||
|
|
||||||
file_put_contents(storage('exception-' . date('Y-m-d') . '.log','exception'),
|
file_put_contents(storage('exception-' . date('Y-m-d') . '.log', 'exception'), json_encode($param, JSON_UNESCAPED_UNICODE) . PHP_EOL, FILE_APPEND);
|
||||||
json_encode($param, JSON_UNESCAPED_UNICODE),
|
|
||||||
FILE_APPEND);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1039,7 +1036,7 @@ if (!function_exists('json_log')) {
|
|||||||
if (!function_exists('map')) {
|
if (!function_exists('map')) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $map
|
* @param array $map
|
||||||
* @param Closure $closure
|
* @param Closure $closure
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|||||||
+19
-10
@@ -11,7 +11,7 @@ class Coordinator
|
|||||||
|
|
||||||
const string WORKER_START = 'worker:start';
|
const string WORKER_START = 'worker:start';
|
||||||
|
|
||||||
private bool $wait = true;
|
private bool $wait = false;
|
||||||
|
|
||||||
private ?Channel $channel = null;
|
private ?Channel $channel = null;
|
||||||
|
|
||||||
@@ -22,12 +22,17 @@ class Coordinator
|
|||||||
public function yield(): void
|
public function yield(): void
|
||||||
{
|
{
|
||||||
if (Coroutine::getCid() > 0) {
|
if (Coroutine::getCid() > 0) {
|
||||||
$this->channel = new Channel(1);
|
if ($this->channel instanceof Channel) {
|
||||||
$this->channel->pop();
|
$this->channel->pop();
|
||||||
} else {
|
|
||||||
while ($this->wait) {
|
|
||||||
usleep(1000);
|
|
||||||
}
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->wait === false) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
while ($this->wait === true) {
|
||||||
|
usleep(1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,8 +42,7 @@ class Coordinator
|
|||||||
*/
|
*/
|
||||||
public function wait(): void
|
public function wait(): void
|
||||||
{
|
{
|
||||||
$this->wait = true;
|
Coroutine::getCid() > 0 ? $this->channel = new Channel(1) : $this->wait = true;
|
||||||
$this->channel = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -47,8 +51,13 @@ class Coordinator
|
|||||||
*/
|
*/
|
||||||
public function done(): void
|
public function done(): void
|
||||||
{
|
{
|
||||||
$this->wait = false;
|
if (Coroutine::getCid() > 0) {
|
||||||
$this->channel?->push(true);
|
$this->channel?->push(true);
|
||||||
|
$this->channel->close();
|
||||||
|
$this->channel = null;
|
||||||
|
} else {
|
||||||
|
$this->wait = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user