mirror of
https://github.com/koush/scrypted.git
synced 2026-09-17 09:10:38 +01:00
server: cluster fork tracking
This commit is contained in:
4
server/package-lock.json
generated
4
server/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@scrypted/server",
|
||||
"version": "0.123.22",
|
||||
"version": "0.123.23",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@scrypted/server",
|
||||
"version": "0.123.22",
|
||||
"version": "0.123.23",
|
||||
"hasInstallScript": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
|
||||
@@ -68,6 +68,7 @@ export interface ClusterWorkerProperties {
|
||||
|
||||
export interface ClusterWorker extends ClusterWorkerProperties {
|
||||
peer: RpcPeer;
|
||||
forks: Set<ClusterForkOptions>;
|
||||
}
|
||||
|
||||
export class PeerLiveness {
|
||||
@@ -287,6 +288,7 @@ export function createClusterServer(runtime: ScryptedRuntime, certificate: Retur
|
||||
const worker: ClusterWorker = {
|
||||
...properties,
|
||||
peer,
|
||||
forks: new Set(),
|
||||
};
|
||||
runtime.clusterWorkers.add(worker);
|
||||
peer.killed.then(() => {
|
||||
|
||||
@@ -18,7 +18,12 @@ export class ClusterFork {
|
||||
throw new Error(`no worker found for cluster labels ${JSON.stringify(options.labels)}`);
|
||||
|
||||
const fork: ClusterForkParam = await worker.peer.getParam('fork');
|
||||
return fork(peerLiveness, options.runtime, packageJson, zipHash, getZip);
|
||||
const forkResult = await fork(peerLiveness, options.runtime, packageJson, zipHash, getZip);
|
||||
worker.forks.add(options);
|
||||
forkResult.waitKilled().catch(() => {}).finally(() => {
|
||||
worker.forks.delete(options);
|
||||
});
|
||||
return forkResult;
|
||||
}
|
||||
|
||||
async getClusterWorkers() {
|
||||
@@ -26,6 +31,7 @@ export class ClusterFork {
|
||||
for (const worker of this.runtime.clusterWorkers) {
|
||||
ret[worker.peer.peerName] = {
|
||||
labels: worker.labels,
|
||||
forks: [...worker.forks],
|
||||
};
|
||||
}
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user