Commit 0d94f3a3 authored by Liu lu's avatar Liu lu

Merge tag 'v2.1.194' of http://git.huaperfect.com/without_auth/meibuyu-micro into 2.1

本地开发 服务注册修改

# Conflicts:
#	src/Listener/RegisterServiceListener.php
parents ffdbcccb 69135a96
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
namespace Meibuyu\Micro\Listener; namespace Meibuyu\Micro\Listener;
use Hyperf\Consul\Exception\ServerException;
use Hyperf\ServiceGovernance\Listener\RegisterServiceListener as BaseRegisterServiceListener; use Hyperf\ServiceGovernance\Listener\RegisterServiceListener as BaseRegisterServiceListener;
class RegisterServiceListener extends BaseRegisterServiceListener class RegisterServiceListener extends BaseRegisterServiceListener
...@@ -63,4 +64,40 @@ class RegisterServiceListener extends BaseRegisterServiceListener ...@@ -63,4 +64,40 @@ class RegisterServiceListener extends BaseRegisterServiceListener
} }
throw new \RuntimeException('Can not get the internal IP.'); throw new \RuntimeException('Can not get the internal IP.');
} }
public function process(object $event)
{
$this->registeredServices = [];
$continue = true;
$env = $this->config->get('app_env');
while ($continue) {
try {
$services = $this->serviceManager->all();
$servers = $this->getServers();
foreach ($services as $serviceName => $serviceProtocols) {
foreach ($serviceProtocols as $paths) {
foreach ($paths as $path => $service) {
if (! isset($service['publishTo'], $service['server']) || $env == 'dev-mf') {
continue;
}
[$address, $port] = $servers[$service['server']];
switch ($service['publishTo']) {
case 'consul':
$this->publishToConsul($address, (int) $port, $service, $serviceName, $path);
break;
}
}
}
}
$continue = false;
} catch (ServerException $throwable) {
if (strpos($throwable->getMessage(), 'Connection failed') !== false) {
$this->logger->warning('Cannot register service, connection of service center failed, re-register after 10 seconds.');
sleep(10);
} else {
throw $throwable;
}
}
}
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment