Initial project structure
This commit is contained in:
@@ -0,0 +1,192 @@
|
||||
export interface WrapperInfo {
|
||||
|
||||
id:string;
|
||||
|
||||
hostname:string;
|
||||
|
||||
commandQueue:string;
|
||||
|
||||
cpu:number;
|
||||
|
||||
ram:number;
|
||||
|
||||
|
||||
ramFree:number;
|
||||
|
||||
|
||||
online:boolean;
|
||||
|
||||
lastHeartbeat:number;
|
||||
|
||||
|
||||
servers:string[];
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
export class WrapperRegistry {
|
||||
|
||||
|
||||
private wrappers =
|
||||
new Map<string, WrapperInfo>();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
add(wrapper:WrapperInfo){
|
||||
|
||||
|
||||
this.wrappers.set(
|
||||
wrapper.id,
|
||||
wrapper
|
||||
);
|
||||
|
||||
|
||||
console.log(
|
||||
"Wrapper gespeichert:",
|
||||
wrapper.id
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
get(id:string){
|
||||
|
||||
return this.wrappers.get(id);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
getAll(){
|
||||
|
||||
return Array.from(
|
||||
this.wrappers.values()
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
updateHeartbeat(id:string){
|
||||
|
||||
|
||||
const wrapper =
|
||||
this.wrappers.get(id);
|
||||
|
||||
|
||||
|
||||
if(!wrapper)
|
||||
return;
|
||||
|
||||
|
||||
|
||||
wrapper.lastHeartbeat =
|
||||
Date.now();
|
||||
|
||||
|
||||
wrapper.online =
|
||||
true;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
update(wrapper:WrapperInfo){
|
||||
|
||||
|
||||
this.wrappers.set(
|
||||
wrapper.id,
|
||||
wrapper
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
checkOffline(timeout:number){
|
||||
|
||||
|
||||
const now =
|
||||
Date.now();
|
||||
|
||||
|
||||
|
||||
for(const wrapper of this.wrappers.values()){
|
||||
|
||||
|
||||
if(
|
||||
wrapper.online &&
|
||||
now - wrapper.lastHeartbeat > timeout
|
||||
){
|
||||
|
||||
|
||||
wrapper.online = false;
|
||||
|
||||
|
||||
console.log(
|
||||
"Wrapper offline:",
|
||||
wrapper.id
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
updateStatus(data:any){
|
||||
|
||||
|
||||
const wrapper =
|
||||
this.wrappers.get(
|
||||
data.wrapperId
|
||||
);
|
||||
|
||||
|
||||
|
||||
if(!wrapper)
|
||||
return;
|
||||
|
||||
|
||||
|
||||
wrapper.ramFree =
|
||||
data.ramFree;
|
||||
|
||||
|
||||
|
||||
wrapper.servers =
|
||||
data.servers;
|
||||
|
||||
|
||||
|
||||
wrapper.lastHeartbeat =
|
||||
Date.now();
|
||||
|
||||
|
||||
|
||||
wrapper.online =
|
||||
true;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user