Initial project structure
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
import * as amqp from "amqplib";
|
||||
import { ProcessManager } from "./processManager";
|
||||
import os from "os";
|
||||
import { QueryManager } from "./queryManager";
|
||||
|
||||
|
||||
|
||||
export class StatusReporter {
|
||||
|
||||
|
||||
constructor(
|
||||
|
||||
private channel: amqp.Channel,
|
||||
|
||||
private processManager: ProcessManager,
|
||||
|
||||
private queryManager: QueryManager,
|
||||
|
||||
private wrapperId: string
|
||||
|
||||
){}
|
||||
|
||||
|
||||
|
||||
start(){
|
||||
|
||||
console.log(
|
||||
"Status Reporter gestartet"
|
||||
);
|
||||
|
||||
|
||||
setInterval(()=>{
|
||||
|
||||
|
||||
this.sendStatus();
|
||||
|
||||
|
||||
},10000);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
sendStatus(){
|
||||
|
||||
|
||||
|
||||
const processes =
|
||||
this.processManager.getStatus();
|
||||
|
||||
|
||||
const queries =
|
||||
this.queryManager.getStatus();
|
||||
|
||||
|
||||
|
||||
const servers =
|
||||
processes.map(server => {
|
||||
|
||||
|
||||
const query =
|
||||
queries.find(
|
||||
(q:any) =>
|
||||
q.id === server.id
|
||||
);
|
||||
|
||||
|
||||
|
||||
return {
|
||||
|
||||
|
||||
...server,
|
||||
|
||||
|
||||
players:
|
||||
query?.players ?? 0,
|
||||
|
||||
|
||||
maxPlayers:
|
||||
query?.maxPlayers ?? 0
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const status = {
|
||||
|
||||
|
||||
type:
|
||||
"wrapper.status",
|
||||
|
||||
|
||||
wrapperId:
|
||||
this.wrapperId,
|
||||
|
||||
|
||||
servers,
|
||||
|
||||
|
||||
|
||||
ramFree:
|
||||
Math.round(
|
||||
|
||||
os.freemem()
|
||||
/
|
||||
1024
|
||||
/
|
||||
1024
|
||||
|
||||
)
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
this.channel.sendToQueue(
|
||||
|
||||
|
||||
"wrapper.register",
|
||||
|
||||
|
||||
|
||||
Buffer.from(
|
||||
|
||||
JSON.stringify(status)
|
||||
|
||||
)
|
||||
|
||||
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
console.log(
|
||||
|
||||
"Status gesendet:",
|
||||
|
||||
servers.length,
|
||||
|
||||
"Server"
|
||||
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user