Compare commits

...

7 Commits

Author SHA1 Message Date
as2252258 b9e20051ef 改名 2021-12-02 14:06:57 +08:00
as2252258 4ab6332176 改名 2021-12-01 19:05:10 +08:00
as2252258 abe2dad521 改名 2021-12-01 19:05:00 +08:00
as2252258 b0f70a13da 改名 2021-12-01 15:16:08 +08:00
as2252258 1e8aca91dd 改名 2021-12-01 14:08:09 +08:00
as2252258 b4ac5c4758 改名 2021-11-30 19:04:29 +08:00
as2252258 d161477957 改名 2021-11-30 19:04:16 +08:00
8 changed files with 90 additions and 13 deletions
+23 -2
View File
@@ -3,8 +3,6 @@
defined('APP_PATH') or define('APP_PATH', realpath(__DIR__ . '/../../'));
use Note\Note;
use Note\Route\Route;
use Http\Handler\Router;
use JetBrains\PhpStorm\Pure;
use Kiri\Abstracts\Config;
@@ -16,6 +14,8 @@ use Kiri\Events\EventDispatch;
use Kiri\Events\EventProvider;
use Kiri\Exception\ConfigException;
use Kiri\Kiri;
use Note\Note;
use Note\Route\Route;
use Psr\Log\LoggerInterface;
use Swoole\Process;
use Swoole\WebSocket\Server;
@@ -900,6 +900,27 @@ if (!function_exists('di')) {
}
if (!function_exists('interval')) {
/**
* @param callable $callback
* @param int $interval
* @param bool $is
*/
function interval(callable $callback, int $interval = 1000, bool $is = false)
{
usleep($interval * 1000);
$callback();
interval($callback, $interval, $is);
}
}
if (!function_exists('duplicate')) {
+2 -1
View File
@@ -29,6 +29,7 @@ use Kiri\Kiri;
use ReflectionException;
use Server\ServerManager;
use Server\Contract\OnTaskInterface;
use Server\Tasker\AsyncTaskExecute;
use Swoole\Table;
/**
@@ -210,7 +211,7 @@ abstract class BaseApplication extends Component
*/
public function task(OnTaskInterface $execute): void
{
di(ServerManager::class)->task($execute);
di(AsyncTaskExecute::class)->execute($execute);
}
+3 -2
View File
@@ -7,6 +7,7 @@ namespace Kiri;
use Exception;
use Kiri\Abstracts\Component;
use Server\ServerManager;
use Server\Tasker\AsyncTaskExecute;
/**
* Class Async
@@ -36,8 +37,8 @@ class Async extends Component
*/
public function dispatch(string $name, array $params = [])
{
$context = di(ServerManager::class);
$context->task(static::$_absences[$name], $params);
$context = di(AsyncTaskExecute::class);
$context->execute(static::$_absences[$name], $params);
}
}
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace Kiri\Core;
class Network
{
/**
* @return string
*/
public static function local(): string
{
return current(swoole_get_local_ip());
}
}
-1
View File
@@ -261,7 +261,6 @@ class Container extends BaseObject implements ContainerInterface
/**
* @param $class
* @return ReflectionClass
* @throws ReflectionException
*/
private function resolveDependencies($class): ReflectionClass
{
+2 -5
View File
@@ -98,14 +98,11 @@ class HotReload extends Command
public function healthCheck()
{
$pid = (int)file_get_contents(storage('.swoole.pid'));
$this->logger->debug('timer ticker.' . $pid . '.' . Process::kill($pid, 0));
if (empty($pid)) {
$this->logger->warning('service is shutdown you need reload.');
$this->trigger_reload();
} else if (!Process::kill($pid, 0)) {
if ($this->process && Process::kill($this->process->pid, 0)) {
echo 'service is shutdown you need reload.';
Process::kill($this->process->pid, -15);
}
$this->logger->warning('service is shutdown you need reload.');
$this->trigger_reload();
}
}
+3 -2
View File
@@ -16,6 +16,7 @@ use Kiri\Di\Container;
use Psr\Container\ContainerInterface;
use ReflectionException;
use Server\ServerManager;
use Server\Tasker\AsyncTaskExecute;
use Swoole\Coroutine;
use Swoole\Process;
use Swoole\WebSocket\Server;
@@ -457,8 +458,8 @@ class Kiri
*/
public static function async(string $class, array $params = [])
{
$manager = di(ServerManager::class);
$manager->task(new $class(...$params));
$manager = di(AsyncTaskExecute::class);
$manager->execute(new $class(...$params));
}
+39
View File
@@ -49,3 +49,42 @@
// after($process);
//});
var_dump(json_encode([
"Datacenter" => "dc1",
"Node" => "iz8vbi3edjyskl7kpuwudqz",
"SkipNodeUpdate" => false,
"Service" => [
"ID" => "redis1",
"Service" => "FriendRpcService",
"Address" => "172.26.221.211",
"TaggedAddresses" => [
"lan" => [
"address" => "127.0.0.1",
"port" => 9627
],
"wan" => [
"address" => "172.26.221.211",
"port" => 9627
]
],
"Meta" => [
"redis_version" => "4.0"
],
"Port" => 9627
],
"Check" => [
"Node" => "iz8vbi3edjyskl7kpuwudqz",
"CheckId" => "service:redis1",
"Name" => "Redis health check",
"Notes" => "Script based health check",
"Status" => "passing",
"ServiceID" => "redis1",
"Definition" => [
"Http" => "http://172.26.221.211:9627",
"Interval" => "5s",
"Timeout" => "1s",
"DeregisterCriticalServiceAfter" => "30s"
],
],
]));