提交 0b8de939 authored 作者: blu's avatar blu

big refacting of communitation architect

上级 021c83b8
...@@ -75,6 +75,7 @@ class EvDaemon{ ...@@ -75,6 +75,7 @@ class EvDaemon{
json &data = jret["data"]; json &data = jret["data"];
string peerId; string peerId;
pid_t pid;
for(auto &[k,v]:data.items()) { for(auto &[k,v]:data.items()) {
if(k == this->devSn) { if(k == this->devSn) {
// startup evmgr // startup evmgr
...@@ -82,11 +83,10 @@ class EvDaemon{ ...@@ -82,11 +83,10 @@ class EvDaemon{
// offline // offline
this->peerData["status"][peerId] = 0; this->peerData["status"][peerId] = 0;
this->peerData["config"][peerId] = v; this->peerData["config"][peerId] = v;
pid_t pid;
ret = zmqhelper::forkSubsystem(devSn, peerId, portRouter, pid); ret = zmqhelper::forkSubsystem(devSn, peerId, portRouter, pid);
if(ret != 0) { if(ret != 0) {
spdlog::error("evdaemon {} failed to fork subsystem: {}", devSn, peerId); spdlog::error("evdaemon {} failed to fork subsystem: {}", devSn, peerId);
// TODO: // TODO: clean up and reload config
exit(1); exit(1);
} }
this->peerData["pids"][peerId] = pid; this->peerData["pids"][peerId] = pid;
...@@ -107,17 +107,26 @@ class EvDaemon{ ...@@ -107,17 +107,26 @@ class EvDaemon{
string peerName; string peerName;
ret = cfgutils::getPeerId(mn, m, peerId, peerName); ret = cfgutils::getPeerId(mn, m, peerId, peerName);
if(ret != 0) { if(ret != 0) {
// TODO: cleanup and reload // TODO: cleanup and reload
}else{
} }
this->peerData["status"][peerId] = 0;
this->peerData["config"][peerId] = v;
ret = zmqhelper::forkSubsystem(devSn, peerId, portRouter, pid);
if(ret != 0) {
spdlog::error("evdaemon {} failed to fork subsystem: {}", devSn, peerId);
// TODO: cleanup and reload
exit(1);
}
this->peerData["pids"][peerId] = pid;
spdlog::info("evdaemon {} created subsystem {}", devSn, peerId);
} }
} }
} }
} }
} }
}catch(exception &e) { }catch(exception &e) {
spdlog::error("evdaemon {} exception {} to reload and apply configuration:\n{}", this->devSn, e.what(), jret.dump(4)); spdlog::error("evdaemon {} exception {} to reload and apply configuration:\n{}", this->devSn, e.what(), jret.dump());
return -1; return -1;
} }
......
...@@ -124,10 +124,10 @@ namespace cfgutils { ...@@ -124,10 +124,10 @@ namespace cfgutils {
peerId = modElem["sn"].get<string>() + ":evmgr:0"; peerId = modElem["sn"].get<string>() + ":evmgr:0";
peerName = modName; peerName = modName;
}else if(modName == "evml") { }else if(modName == "evml") {
peerId = modElem["sn"].get<string>() + ":evml" + modElem["type"].get<string>() + ":" + modElem["iid"].get<string>(); peerId = modElem["sn"].get<string>() + ":evml" + modElem["type"].get<string>() + ":" + to_string(modElem["iid"]);
peerName = modName + modElem["type"].get<string>(); peerName = modName + modElem["type"].get<string>();
}else{ }else{
peerId = modElem["sn"].get<string>() + ":" + modName + ":" + modElem["iid"].get<string>(); peerId = modElem["sn"].get<string>() + ":" + modName + ":" + to_string(modElem["iid"]);
peerName = modName; peerName = modName;
} }
}catch(exception &e) { }catch(exception &e) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论