This commit is contained in:
2020-10-30 01:46:19 +08:00
parent e36d63d144
commit 73a2f691ce
2 changed files with 8 additions and 4 deletions
+7 -3
View File
@@ -187,14 +187,14 @@ class Event extends BaseObject
$defaultParameter = [$defaultParameter]; $defaultParameter = [$defaultParameter];
} }
$result = call_user_func($handler, ...$defaultParameter); $result = call_user_func($handler, ...$defaultParameter);
if ($is_remove) { if ($handler instanceof \Closure || $is_remove) {
$this->of($name, $handler); $this->of($name, $handler);
} }
return $result; return $result;
} }
foreach ($this->_events[$name] as $event) { foreach ($this->_events[$name] as $index => $event) {
[$handler, $defaultParameter] = $event;
try { try {
[$handler, $defaultParameter] = $event;
if (!empty($parameter)) { if (!empty($parameter)) {
$defaultParameter = ArrayAccess::merge($defaultParameter, $parameter); $defaultParameter = ArrayAccess::merge($defaultParameter, $parameter);
} }
@@ -204,6 +204,10 @@ class Event extends BaseObject
call_user_func($handler, ...$defaultParameter); call_user_func($handler, ...$defaultParameter);
} catch (\Throwable $exception) { } catch (\Throwable $exception) {
$this->error($exception->getMessage()); $this->error($exception->getMessage());
} finally {
if ($handler instanceof \Closure) {
unset($this->_events[$name][$index]);
}
} }
} }
if ($is_remove) { if ($is_remove) {
+1 -1
View File
@@ -87,7 +87,7 @@ class Redis extends Pool
private function createConnect(array $config, string $coroutineName) private function createConnect(array $config, string $coroutineName)
{ {
$redis = new SRedis(); $redis = new SRedis();
if (!$redis->connect($config['host'], $config['port'], $config['timeout'])) { if (!$redis->connect($config['host'], (int)$config['port'], $config['timeout'])) {
throw new RedisConnectException(sprintf('The Redis Connect %s::%d Fail.', $config['host'], $config['port'])); throw new RedisConnectException(sprintf('The Redis Connect %s::%d Fail.', $config['host'], $config['port']));
} }
if (empty($config['auth']) || !$redis->auth($config['auth'])) { if (empty($config['auth']) || !$redis->auth($config['auth'])) {