@orkify/cli 1.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/README.md +1701 -0
- package/bin/orkify +3 -0
- package/boot/systemd/orkify@.service +30 -0
- package/dist/agent-name.d.ts +4 -0
- package/dist/agent-name.js +42 -0
- package/dist/alerts/AlertEvaluator.d.ts +14 -0
- package/dist/alerts/AlertEvaluator.js +135 -0
- package/dist/cli/commands/autostart.d.ts +3 -0
- package/dist/cli/commands/autostart.js +11 -0
- package/dist/cli/commands/crash-test.d.ts +3 -0
- package/dist/cli/commands/crash-test.js +17 -0
- package/dist/cli/commands/daemon-reload.d.ts +3 -0
- package/dist/cli/commands/daemon-reload.js +72 -0
- package/dist/cli/commands/delete.d.ts +3 -0
- package/dist/cli/commands/delete.js +37 -0
- package/dist/cli/commands/deploy.d.ts +6 -0
- package/dist/cli/commands/deploy.js +266 -0
- package/dist/cli/commands/down.d.ts +3 -0
- package/dist/cli/commands/down.js +36 -0
- package/dist/cli/commands/flush.d.ts +3 -0
- package/dist/cli/commands/flush.js +28 -0
- package/dist/cli/commands/kill.d.ts +3 -0
- package/dist/cli/commands/kill.js +35 -0
- package/dist/cli/commands/list.d.ts +14 -0
- package/dist/cli/commands/list.js +361 -0
- package/dist/cli/commands/logs.d.ts +3 -0
- package/dist/cli/commands/logs.js +107 -0
- package/dist/cli/commands/mcp.d.ts +3 -0
- package/dist/cli/commands/mcp.js +151 -0
- package/dist/cli/commands/reload.d.ts +3 -0
- package/dist/cli/commands/reload.js +54 -0
- package/dist/cli/commands/restart.d.ts +3 -0
- package/dist/cli/commands/restart.js +43 -0
- package/dist/cli/commands/restore.d.ts +3 -0
- package/dist/cli/commands/restore.js +88 -0
- package/dist/cli/commands/run.d.ts +8 -0
- package/dist/cli/commands/run.js +212 -0
- package/dist/cli/commands/snap.d.ts +3 -0
- package/dist/cli/commands/snap.js +30 -0
- package/dist/cli/commands/up.d.ts +3 -0
- package/dist/cli/commands/up.js +125 -0
- package/dist/cli/crash-recovery.d.ts +2 -0
- package/dist/cli/crash-recovery.js +67 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.js +46 -0
- package/dist/cli/parse.d.ts +28 -0
- package/dist/cli/parse.js +97 -0
- package/dist/cluster/ClusterWrapper.d.ts +18 -0
- package/dist/cluster/ClusterWrapper.js +602 -0
- package/dist/config/ConfigStore.d.ts +11 -0
- package/dist/config/ConfigStore.js +21 -0
- package/dist/config/schema.d.ts +103 -0
- package/dist/config/schema.js +49 -0
- package/dist/constants.d.ts +83 -0
- package/dist/constants.js +289 -0
- package/dist/cron/CronScheduler.d.ts +25 -0
- package/dist/cron/CronScheduler.js +149 -0
- package/dist/daemon/GracefulManager.d.ts +8 -0
- package/dist/daemon/GracefulManager.js +29 -0
- package/dist/daemon/ManagedProcess.d.ts +71 -0
- package/dist/daemon/ManagedProcess.js +1020 -0
- package/dist/daemon/Orchestrator.d.ts +51 -0
- package/dist/daemon/Orchestrator.js +416 -0
- package/dist/daemon/RotatingWriter.d.ts +27 -0
- package/dist/daemon/RotatingWriter.js +264 -0
- package/dist/daemon/index.d.ts +2 -0
- package/dist/daemon/index.js +106 -0
- package/dist/daemon/startDaemon.d.ts +30 -0
- package/dist/daemon/startDaemon.js +693 -0
- package/dist/deploy/CommandPoller.d.ts +13 -0
- package/dist/deploy/CommandPoller.js +53 -0
- package/dist/deploy/DeployExecutor.d.ts +33 -0
- package/dist/deploy/DeployExecutor.js +340 -0
- package/dist/deploy/config.d.ts +20 -0
- package/dist/deploy/config.js +161 -0
- package/dist/deploy/env.d.ts +2 -0
- package/dist/deploy/env.js +17 -0
- package/dist/deploy/tarball.d.ts +32 -0
- package/dist/deploy/tarball.js +243 -0
- package/dist/detect/framework.d.ts +2 -0
- package/dist/detect/framework.js +24 -0
- package/dist/ipc/DaemonClient.d.ts +31 -0
- package/dist/ipc/DaemonClient.js +248 -0
- package/dist/ipc/DaemonServer.d.ts +28 -0
- package/dist/ipc/DaemonServer.js +166 -0
- package/dist/ipc/MultiUserClient.d.ts +27 -0
- package/dist/ipc/MultiUserClient.js +203 -0
- package/dist/ipc/protocol.d.ts +7 -0
- package/dist/ipc/protocol.js +53 -0
- package/dist/ipc/restoreDaemon.d.ts +8 -0
- package/dist/ipc/restoreDaemon.js +19 -0
- package/dist/machine-id.d.ts +11 -0
- package/dist/machine-id.js +51 -0
- package/dist/mcp/auth.d.ts +118 -0
- package/dist/mcp/auth.js +245 -0
- package/dist/mcp/http.d.ts +20 -0
- package/dist/mcp/http.js +229 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.js +8 -0
- package/dist/mcp/server.d.ts +37 -0
- package/dist/mcp/server.js +413 -0
- package/dist/probe/compute-fingerprint.d.ts +27 -0
- package/dist/probe/compute-fingerprint.js +65 -0
- package/dist/probe/parse-frames.d.ts +21 -0
- package/dist/probe/parse-frames.js +57 -0
- package/dist/probe/resolve-sourcemaps.d.ts +25 -0
- package/dist/probe/resolve-sourcemaps.js +281 -0
- package/dist/state/StateStore.d.ts +11 -0
- package/dist/state/StateStore.js +78 -0
- package/dist/telemetry/TelemetryReporter.d.ts +49 -0
- package/dist/telemetry/TelemetryReporter.js +451 -0
- package/dist/types/index.d.ts +373 -0
- package/dist/types/index.js +2 -0
- package/package.json +148 -0
- package/packages/cache/README.md +114 -0
- package/packages/cache/dist/CacheClient.d.ts +26 -0
- package/packages/cache/dist/CacheClient.d.ts.map +1 -0
- package/packages/cache/dist/CacheClient.js +174 -0
- package/packages/cache/dist/CacheClient.js.map +1 -0
- package/packages/cache/dist/CacheFileStore.d.ts +45 -0
- package/packages/cache/dist/CacheFileStore.d.ts.map +1 -0
- package/packages/cache/dist/CacheFileStore.js +446 -0
- package/packages/cache/dist/CacheFileStore.js.map +1 -0
- package/packages/cache/dist/CachePersistence.d.ts +9 -0
- package/packages/cache/dist/CachePersistence.d.ts.map +1 -0
- package/packages/cache/dist/CachePersistence.js +67 -0
- package/packages/cache/dist/CachePersistence.js.map +1 -0
- package/packages/cache/dist/CachePrimary.d.ts +25 -0
- package/packages/cache/dist/CachePrimary.d.ts.map +1 -0
- package/packages/cache/dist/CachePrimary.js +155 -0
- package/packages/cache/dist/CachePrimary.js.map +1 -0
- package/packages/cache/dist/CacheStore.d.ts +50 -0
- package/packages/cache/dist/CacheStore.d.ts.map +1 -0
- package/packages/cache/dist/CacheStore.js +271 -0
- package/packages/cache/dist/CacheStore.js.map +1 -0
- package/packages/cache/dist/constants.d.ts +6 -0
- package/packages/cache/dist/constants.d.ts.map +1 -0
- package/packages/cache/dist/constants.js +9 -0
- package/packages/cache/dist/constants.js.map +1 -0
- package/packages/cache/dist/index.d.ts +16 -0
- package/packages/cache/dist/index.d.ts.map +1 -0
- package/packages/cache/dist/index.js +86 -0
- package/packages/cache/dist/index.js.map +1 -0
- package/packages/cache/dist/serialize.d.ts +9 -0
- package/packages/cache/dist/serialize.d.ts.map +1 -0
- package/packages/cache/dist/serialize.js +40 -0
- package/packages/cache/dist/serialize.js.map +1 -0
- package/packages/cache/dist/types.d.ts +123 -0
- package/packages/cache/dist/types.d.ts.map +1 -0
- package/packages/cache/dist/types.js +2 -0
- package/packages/cache/dist/types.js.map +1 -0
- package/packages/cache/package.json +27 -0
- package/packages/cache/src/CacheClient.ts +227 -0
- package/packages/cache/src/CacheFileStore.ts +528 -0
- package/packages/cache/src/CachePersistence.ts +89 -0
- package/packages/cache/src/CachePrimary.ts +172 -0
- package/packages/cache/src/CacheStore.ts +308 -0
- package/packages/cache/src/constants.ts +10 -0
- package/packages/cache/src/index.ts +100 -0
- package/packages/cache/src/serialize.ts +49 -0
- package/packages/cache/src/types.ts +156 -0
- package/packages/cache/tsconfig.json +18 -0
- package/packages/cache/tsconfig.tsbuildinfo +1 -0
- package/packages/next/README.md +166 -0
- package/packages/next/dist/error-capture.d.ts +34 -0
- package/packages/next/dist/error-capture.d.ts.map +1 -0
- package/packages/next/dist/error-capture.js +130 -0
- package/packages/next/dist/error-capture.js.map +1 -0
- package/packages/next/dist/error-handler.d.ts +10 -0
- package/packages/next/dist/error-handler.d.ts.map +1 -0
- package/packages/next/dist/error-handler.js +186 -0
- package/packages/next/dist/error-handler.js.map +1 -0
- package/packages/next/dist/isr-cache.d.ts +9 -0
- package/packages/next/dist/isr-cache.d.ts.map +1 -0
- package/packages/next/dist/isr-cache.js +86 -0
- package/packages/next/dist/isr-cache.js.map +1 -0
- package/packages/next/dist/stream.d.ts +5 -0
- package/packages/next/dist/stream.d.ts.map +1 -0
- package/packages/next/dist/stream.js +22 -0
- package/packages/next/dist/stream.js.map +1 -0
- package/packages/next/dist/types.d.ts +33 -0
- package/packages/next/dist/types.d.ts.map +1 -0
- package/packages/next/dist/types.js +6 -0
- package/packages/next/dist/types.js.map +1 -0
- package/packages/next/dist/use-cache.d.ts +4 -0
- package/packages/next/dist/use-cache.d.ts.map +1 -0
- package/packages/next/dist/use-cache.js +86 -0
- package/packages/next/dist/use-cache.js.map +1 -0
- package/packages/next/dist/utils.d.ts +32 -0
- package/packages/next/dist/utils.d.ts.map +1 -0
- package/packages/next/dist/utils.js +88 -0
- package/packages/next/dist/utils.js.map +1 -0
- package/packages/next/package.json +52 -0
- package/packages/next/src/error-capture.ts +177 -0
- package/packages/next/src/error-handler.ts +221 -0
- package/packages/next/src/isr-cache.ts +100 -0
- package/packages/next/src/stream.ts +23 -0
- package/packages/next/src/types.ts +33 -0
- package/packages/next/src/use-cache.ts +99 -0
- package/packages/next/src/utils.ts +102 -0
- package/packages/next/tsconfig.json +19 -0
- package/packages/next/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { CronExpressionParser } from 'cron-parser';
|
|
2
|
+
const DEFAULT_TIMEOUT = 30_000;
|
|
3
|
+
const TICK_INTERVAL = 30_000;
|
|
4
|
+
const MIN_INTERVAL_MS = 60_000;
|
|
5
|
+
const MAX_INTERVAL_MS = 24 * 60 * 60_000;
|
|
6
|
+
/**
|
|
7
|
+
* Validate a cron schedule string. Returns null if valid,
|
|
8
|
+
* or an error message if invalid, sub-minute, or > 24h.
|
|
9
|
+
*/
|
|
10
|
+
export function validateCronSchedule(schedule) {
|
|
11
|
+
try {
|
|
12
|
+
const expr = CronExpressionParser.parse(schedule);
|
|
13
|
+
const first = expr.next().toDate();
|
|
14
|
+
const second = expr.next().toDate();
|
|
15
|
+
const intervalMs = second.getTime() - first.getTime();
|
|
16
|
+
if (intervalMs < MIN_INTERVAL_MS) {
|
|
17
|
+
return `schedule "${schedule}" fires every ${Math.round(intervalMs / 1000)}s — minimum interval is 60s`;
|
|
18
|
+
}
|
|
19
|
+
if (intervalMs > MAX_INTERVAL_MS) {
|
|
20
|
+
const hours = Math.round(intervalMs / 3_600_000);
|
|
21
|
+
return `schedule "${schedule}" fires every ${hours}h — maximum interval is 24h`;
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return `invalid cron expression: "${schedule}"`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validate a cron job path. Must be a clean local route path
|
|
31
|
+
* (e.g. "/api/cron/heartbeat-check") — no URLs, hosts, or query strings.
|
|
32
|
+
*/
|
|
33
|
+
export function validateCronPath(path) {
|
|
34
|
+
if (!path.startsWith('/')) {
|
|
35
|
+
return `path "${path}" must start with /`;
|
|
36
|
+
}
|
|
37
|
+
if (/[:\\?#@]/.test(path)) {
|
|
38
|
+
return `path "${path}" must be a plain route path (no ":", "?", "#", or "@")`;
|
|
39
|
+
}
|
|
40
|
+
if (path.includes('..')) {
|
|
41
|
+
return `path "${path}" must not contain ".."`;
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
export class CronScheduler {
|
|
46
|
+
orchestrator;
|
|
47
|
+
jobs = [];
|
|
48
|
+
timer = null;
|
|
49
|
+
constructor(orchestrator) {
|
|
50
|
+
this.orchestrator = orchestrator;
|
|
51
|
+
this.timer = setInterval(() => this.tick(), TICK_INTERVAL);
|
|
52
|
+
this.timer.unref();
|
|
53
|
+
}
|
|
54
|
+
register(processName, jobs) {
|
|
55
|
+
// Remove any existing jobs for this process first
|
|
56
|
+
this.unregister(processName);
|
|
57
|
+
for (const job of jobs) {
|
|
58
|
+
const pathError = validateCronPath(job.path);
|
|
59
|
+
if (pathError) {
|
|
60
|
+
console.error(`[cron] ${processName} — ${pathError}, skipping`);
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
const error = validateCronSchedule(job.schedule);
|
|
64
|
+
if (error) {
|
|
65
|
+
console.error(`[cron] ${processName}${job.path} — ${error}, skipping`);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
// Safe: validateCronSchedule above guarantees a valid schedule
|
|
69
|
+
const nextRun = this.computeNextRun(job.schedule);
|
|
70
|
+
this.jobs.push({
|
|
71
|
+
job,
|
|
72
|
+
processName,
|
|
73
|
+
nextRun,
|
|
74
|
+
running: false,
|
|
75
|
+
});
|
|
76
|
+
console.log(`[cron] Registered ${processName} ${job.method ?? 'GET'} ${job.path} schedule="${job.schedule}" next=${nextRun.toISOString()}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
unregister(processName) {
|
|
80
|
+
const before = this.jobs.length;
|
|
81
|
+
this.jobs = this.jobs.filter((s) => s.processName !== processName);
|
|
82
|
+
if (this.jobs.length < before) {
|
|
83
|
+
console.log(`[cron] Unregistered all jobs for ${processName}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
shutdown() {
|
|
87
|
+
if (this.timer) {
|
|
88
|
+
clearInterval(this.timer);
|
|
89
|
+
this.timer = null;
|
|
90
|
+
}
|
|
91
|
+
this.jobs = [];
|
|
92
|
+
}
|
|
93
|
+
tick() {
|
|
94
|
+
const now = Date.now();
|
|
95
|
+
for (const state of this.jobs) {
|
|
96
|
+
if (state.running)
|
|
97
|
+
continue;
|
|
98
|
+
if (now < state.nextRun.getTime())
|
|
99
|
+
continue;
|
|
100
|
+
this.dispatch(state);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
dispatch(state) {
|
|
104
|
+
const { job, processName } = state;
|
|
105
|
+
// Look up process port and secret
|
|
106
|
+
const processList = this.orchestrator.list();
|
|
107
|
+
const proc = processList.find((p) => p.name === processName);
|
|
108
|
+
const port = proc?.port;
|
|
109
|
+
const cronSecret = this.orchestrator.getCronSecret(processName);
|
|
110
|
+
if (!port) {
|
|
111
|
+
console.log(`[cron] ${processName}${job.path} — no port detected, skipping`);
|
|
112
|
+
state.nextRun = this.computeNextRun(job.schedule) ?? new Date(Date.now() + 60_000);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const method = job.method ?? 'GET';
|
|
116
|
+
const timeout = job.timeout ?? DEFAULT_TIMEOUT;
|
|
117
|
+
const headers = {};
|
|
118
|
+
if (cronSecret) {
|
|
119
|
+
headers['Authorization'] = `Bearer ${cronSecret}`;
|
|
120
|
+
}
|
|
121
|
+
state.running = true;
|
|
122
|
+
fetch(`http://localhost:${port}${job.path}`, {
|
|
123
|
+
method,
|
|
124
|
+
headers,
|
|
125
|
+
signal: AbortSignal.timeout(timeout),
|
|
126
|
+
})
|
|
127
|
+
.then((res) => {
|
|
128
|
+
console.log(`[cron] ${processName} ${method} ${job.path} → ${res.status}`);
|
|
129
|
+
})
|
|
130
|
+
.catch((err) => {
|
|
131
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
132
|
+
console.error(`[cron] ${processName} ${method} ${job.path} — error: ${message}`);
|
|
133
|
+
})
|
|
134
|
+
.finally(() => {
|
|
135
|
+
state.running = false;
|
|
136
|
+
state.nextRun = this.computeNextRun(job.schedule) ?? new Date(Date.now() + 60_000);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
computeNextRun(schedule) {
|
|
140
|
+
try {
|
|
141
|
+
const expr = CronExpressionParser.parse(schedule);
|
|
142
|
+
return expr.next().toDate();
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=CronScheduler.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import type { ManagedProcess } from './ManagedProcess.js';
|
|
3
|
+
export declare class GracefulManager extends EventEmitter {
|
|
4
|
+
private reloadInProgress;
|
|
5
|
+
reload(container: ManagedProcess): Promise<void>;
|
|
6
|
+
isReloading(processId: number): boolean;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=GracefulManager.d.ts.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
export class GracefulManager extends EventEmitter {
|
|
3
|
+
reloadInProgress = new Map();
|
|
4
|
+
async reload(container) {
|
|
5
|
+
const processId = container.id;
|
|
6
|
+
if (this.reloadInProgress.get(processId)) {
|
|
7
|
+
throw new Error(`Reload already in progress for process ${container.config.name}`);
|
|
8
|
+
}
|
|
9
|
+
this.reloadInProgress.set(processId, true);
|
|
10
|
+
this.emit('reload:start', {
|
|
11
|
+
processName: container.config.name,
|
|
12
|
+
processId: container.id,
|
|
13
|
+
});
|
|
14
|
+
try {
|
|
15
|
+
await container.reload();
|
|
16
|
+
this.emit('reload:complete', {
|
|
17
|
+
processName: container.config.name,
|
|
18
|
+
processId: container.id,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
finally {
|
|
22
|
+
this.reloadInProgress.delete(processId);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
isReloading(processId) {
|
|
26
|
+
return this.reloadInProgress.get(processId) || false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=GracefulManager.js.map
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import type { ProcessConfig, ProcessInfo } from '../types/index.js';
|
|
3
|
+
export declare class ManagedProcess extends EventEmitter {
|
|
4
|
+
readonly id: number;
|
|
5
|
+
readonly config: ProcessConfig;
|
|
6
|
+
private forkProcess;
|
|
7
|
+
private clusterPrimary;
|
|
8
|
+
private clusterWorkers;
|
|
9
|
+
private slotRestarts;
|
|
10
|
+
private slotCrashes;
|
|
11
|
+
private launchTimers;
|
|
12
|
+
private outWriter;
|
|
13
|
+
private errWriter;
|
|
14
|
+
private watcher;
|
|
15
|
+
private isShuttingDown;
|
|
16
|
+
private isReloading;
|
|
17
|
+
private statsInterval;
|
|
18
|
+
private forkRestarts;
|
|
19
|
+
private forkCrashes;
|
|
20
|
+
private forkCreatedAt;
|
|
21
|
+
private forkReady;
|
|
22
|
+
private forkLaunchTimer;
|
|
23
|
+
private detectedPort;
|
|
24
|
+
readonly cronSecret: string | undefined;
|
|
25
|
+
private primaryRestarts;
|
|
26
|
+
private lastMemoryRestart;
|
|
27
|
+
private workerMemoryCooldowns;
|
|
28
|
+
private memoryRestartingWorkers;
|
|
29
|
+
private recentStderr;
|
|
30
|
+
private static readonly STDERR_BUFFER_SIZE;
|
|
31
|
+
private forkStats;
|
|
32
|
+
constructor(id: number, config: ProcessConfig);
|
|
33
|
+
private setupLogStreams;
|
|
34
|
+
start(): Promise<void>;
|
|
35
|
+
private startFork;
|
|
36
|
+
private startForkLaunchTimer;
|
|
37
|
+
private clearForkLaunchTimer;
|
|
38
|
+
private setupForkHandlers;
|
|
39
|
+
private startCluster;
|
|
40
|
+
private setupClusterHandlers;
|
|
41
|
+
private waitForPrimaryReady;
|
|
42
|
+
private updateWorkerState;
|
|
43
|
+
private startLaunchTimer;
|
|
44
|
+
private clearLaunchTimer;
|
|
45
|
+
private clearAllLaunchTimers;
|
|
46
|
+
private checkHealth;
|
|
47
|
+
private handleLog;
|
|
48
|
+
private setupWatcher;
|
|
49
|
+
private startStatsCollection;
|
|
50
|
+
private collectStats;
|
|
51
|
+
private checkMemoryThreshold;
|
|
52
|
+
private memoryRestartFork;
|
|
53
|
+
private memoryRestartWorker;
|
|
54
|
+
stop(opts?: {
|
|
55
|
+
persistCache?: boolean;
|
|
56
|
+
}): Promise<void>;
|
|
57
|
+
flushLogs(): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Immediately SIGKILL all child processes without waiting for graceful shutdown.
|
|
60
|
+
*/
|
|
61
|
+
forceKill(): void;
|
|
62
|
+
private stopFork;
|
|
63
|
+
private stopCluster;
|
|
64
|
+
restart(): Promise<void>;
|
|
65
|
+
reload(): Promise<void>;
|
|
66
|
+
getInfo(): ProcessInfo;
|
|
67
|
+
private getStatus;
|
|
68
|
+
getWorkerCount(): number;
|
|
69
|
+
isRunning(): boolean;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=ManagedProcess.d.ts.map
|