@zintrust/workers 0.1.27
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/README.md +861 -0
- package/dist/AnomalyDetection.d.ts +102 -0
- package/dist/AnomalyDetection.js +321 -0
- package/dist/AutoScaler.d.ts +127 -0
- package/dist/AutoScaler.js +425 -0
- package/dist/BroadcastWorker.d.ts +21 -0
- package/dist/BroadcastWorker.js +24 -0
- package/dist/CanaryController.d.ts +103 -0
- package/dist/CanaryController.js +380 -0
- package/dist/ChaosEngineering.d.ts +79 -0
- package/dist/ChaosEngineering.js +216 -0
- package/dist/CircuitBreaker.d.ts +106 -0
- package/dist/CircuitBreaker.js +374 -0
- package/dist/ClusterLock.d.ts +90 -0
- package/dist/ClusterLock.js +385 -0
- package/dist/ComplianceManager.d.ts +177 -0
- package/dist/ComplianceManager.js +556 -0
- package/dist/DatacenterOrchestrator.d.ts +133 -0
- package/dist/DatacenterOrchestrator.js +404 -0
- package/dist/DeadLetterQueue.d.ts +122 -0
- package/dist/DeadLetterQueue.js +539 -0
- package/dist/HealthMonitor.d.ts +42 -0
- package/dist/HealthMonitor.js +301 -0
- package/dist/MultiQueueWorker.d.ts +89 -0
- package/dist/MultiQueueWorker.js +277 -0
- package/dist/NotificationWorker.d.ts +21 -0
- package/dist/NotificationWorker.js +23 -0
- package/dist/Observability.d.ts +153 -0
- package/dist/Observability.js +530 -0
- package/dist/PluginManager.d.ts +123 -0
- package/dist/PluginManager.js +392 -0
- package/dist/PriorityQueue.d.ts +117 -0
- package/dist/PriorityQueue.js +244 -0
- package/dist/ResourceMonitor.d.ts +164 -0
- package/dist/ResourceMonitor.js +605 -0
- package/dist/SLAMonitor.d.ts +110 -0
- package/dist/SLAMonitor.js +274 -0
- package/dist/WorkerFactory.d.ts +193 -0
- package/dist/WorkerFactory.js +1507 -0
- package/dist/WorkerInit.d.ts +85 -0
- package/dist/WorkerInit.js +223 -0
- package/dist/WorkerMetrics.d.ts +114 -0
- package/dist/WorkerMetrics.js +509 -0
- package/dist/WorkerRegistry.d.ts +145 -0
- package/dist/WorkerRegistry.js +319 -0
- package/dist/WorkerShutdown.d.ts +61 -0
- package/dist/WorkerShutdown.js +159 -0
- package/dist/WorkerVersioning.d.ts +107 -0
- package/dist/WorkerVersioning.js +300 -0
- package/dist/build-manifest.json +462 -0
- package/dist/config/workerConfig.d.ts +3 -0
- package/dist/config/workerConfig.js +19 -0
- package/dist/createQueueWorker.d.ts +23 -0
- package/dist/createQueueWorker.js +113 -0
- package/dist/dashboard/index.d.ts +1 -0
- package/dist/dashboard/index.js +1 -0
- package/dist/dashboard/types.d.ts +117 -0
- package/dist/dashboard/types.js +1 -0
- package/dist/dashboard/workers-api.d.ts +4 -0
- package/dist/dashboard/workers-api.js +638 -0
- package/dist/dashboard/workers-dashboard-ui.d.ts +3 -0
- package/dist/dashboard/workers-dashboard-ui.js +1026 -0
- package/dist/dashboard/workers-dashboard.d.ts +4 -0
- package/dist/dashboard/workers-dashboard.js +904 -0
- package/dist/helper/index.d.ts +5 -0
- package/dist/helper/index.js +10 -0
- package/dist/http/WorkerApiController.d.ts +38 -0
- package/dist/http/WorkerApiController.js +312 -0
- package/dist/http/WorkerController.d.ts +374 -0
- package/dist/http/WorkerController.js +1351 -0
- package/dist/http/middleware/CustomValidation.d.ts +92 -0
- package/dist/http/middleware/CustomValidation.js +270 -0
- package/dist/http/middleware/DatacenterValidator.d.ts +3 -0
- package/dist/http/middleware/DatacenterValidator.js +94 -0
- package/dist/http/middleware/EditWorkerValidation.d.ts +7 -0
- package/dist/http/middleware/EditWorkerValidation.js +55 -0
- package/dist/http/middleware/FeaturesValidator.d.ts +3 -0
- package/dist/http/middleware/FeaturesValidator.js +60 -0
- package/dist/http/middleware/InfrastructureValidator.d.ts +31 -0
- package/dist/http/middleware/InfrastructureValidator.js +226 -0
- package/dist/http/middleware/OptionsValidator.d.ts +3 -0
- package/dist/http/middleware/OptionsValidator.js +112 -0
- package/dist/http/middleware/PayloadSanitizer.d.ts +7 -0
- package/dist/http/middleware/PayloadSanitizer.js +42 -0
- package/dist/http/middleware/ProcessorPathSanitizer.d.ts +3 -0
- package/dist/http/middleware/ProcessorPathSanitizer.js +74 -0
- package/dist/http/middleware/QueueNameSanitizer.d.ts +3 -0
- package/dist/http/middleware/QueueNameSanitizer.js +45 -0
- package/dist/http/middleware/ValidateDriver.d.ts +7 -0
- package/dist/http/middleware/ValidateDriver.js +20 -0
- package/dist/http/middleware/VersionSanitizer.d.ts +3 -0
- package/dist/http/middleware/VersionSanitizer.js +25 -0
- package/dist/http/middleware/WorkerNameSanitizer.d.ts +3 -0
- package/dist/http/middleware/WorkerNameSanitizer.js +46 -0
- package/dist/http/middleware/WorkerValidationChain.d.ts +27 -0
- package/dist/http/middleware/WorkerValidationChain.js +185 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.js +48 -0
- package/dist/routes/workers.d.ts +12 -0
- package/dist/routes/workers.js +81 -0
- package/dist/storage/WorkerStore.d.ts +45 -0
- package/dist/storage/WorkerStore.js +195 -0
- package/dist/type.d.ts +76 -0
- package/dist/type.js +1 -0
- package/dist/ui/router/ui.d.ts +3 -0
- package/dist/ui/router/ui.js +83 -0
- package/dist/ui/types/worker-ui.d.ts +229 -0
- package/dist/ui/types/worker-ui.js +5 -0
- package/package.json +53 -0
- package/src/AnomalyDetection.ts +434 -0
- package/src/AutoScaler.ts +654 -0
- package/src/BroadcastWorker.ts +34 -0
- package/src/CanaryController.ts +531 -0
- package/src/ChaosEngineering.ts +301 -0
- package/src/CircuitBreaker.ts +495 -0
- package/src/ClusterLock.ts +499 -0
- package/src/ComplianceManager.ts +815 -0
- package/src/DatacenterOrchestrator.ts +561 -0
- package/src/DeadLetterQueue.ts +733 -0
- package/src/HealthMonitor.ts +390 -0
- package/src/MultiQueueWorker.ts +431 -0
- package/src/NotificationWorker.ts +33 -0
- package/src/Observability.ts +696 -0
- package/src/PluginManager.ts +551 -0
- package/src/PriorityQueue.ts +351 -0
- package/src/ResourceMonitor.ts +769 -0
- package/src/SLAMonitor.ts +408 -0
- package/src/WorkerFactory.ts +2108 -0
- package/src/WorkerInit.ts +313 -0
- package/src/WorkerMetrics.ts +709 -0
- package/src/WorkerRegistry.ts +443 -0
- package/src/WorkerShutdown.ts +210 -0
- package/src/WorkerVersioning.ts +422 -0
- package/src/config/workerConfig.ts +25 -0
- package/src/createQueueWorker.ts +174 -0
- package/src/dashboard/index.ts +6 -0
- package/src/dashboard/types.ts +141 -0
- package/src/dashboard/workers-api.ts +785 -0
- package/src/dashboard/zintrust.svg +30 -0
- package/src/helper/index.ts +11 -0
- package/src/http/WorkerApiController.ts +369 -0
- package/src/http/WorkerController.ts +1512 -0
- package/src/http/middleware/CustomValidation.ts +360 -0
- package/src/http/middleware/DatacenterValidator.ts +124 -0
- package/src/http/middleware/EditWorkerValidation.ts +74 -0
- package/src/http/middleware/FeaturesValidator.ts +82 -0
- package/src/http/middleware/InfrastructureValidator.ts +295 -0
- package/src/http/middleware/OptionsValidator.ts +144 -0
- package/src/http/middleware/PayloadSanitizer.ts +52 -0
- package/src/http/middleware/ProcessorPathSanitizer.ts +86 -0
- package/src/http/middleware/QueueNameSanitizer.ts +55 -0
- package/src/http/middleware/ValidateDriver.ts +29 -0
- package/src/http/middleware/VersionSanitizer.ts +30 -0
- package/src/http/middleware/WorkerNameSanitizer.ts +56 -0
- package/src/http/middleware/WorkerValidationChain.ts +230 -0
- package/src/index.ts +98 -0
- package/src/routes/workers.ts +154 -0
- package/src/storage/WorkerStore.ts +240 -0
- package/src/type.ts +89 -0
- package/src/types/queue-monitor.d.ts +38 -0
- package/src/types/queue-redis.d.ts +38 -0
- package/src/ui/README.md +13 -0
- package/src/ui/components/JsonEditor.js +670 -0
- package/src/ui/components/JsonViewer.js +387 -0
- package/src/ui/components/WorkerCard.js +178 -0
- package/src/ui/components/WorkerExpandPanel.js +257 -0
- package/src/ui/components/fetcher.js +42 -0
- package/src/ui/components/sla-scorecard.js +32 -0
- package/src/ui/components/styles.css +30 -0
- package/src/ui/components/table-expander.js +34 -0
- package/src/ui/integration/worker-ui-integration.js +565 -0
- package/src/ui/router/ui.ts +99 -0
- package/src/ui/services/workerApi.js +240 -0
- package/src/ui/types/worker-ui.ts +283 -0
- package/src/ui/utils/jsonValidator.js +444 -0
- package/src/ui/workers/index.html +202 -0
- package/src/ui/workers/main.js +1781 -0
- package/src/ui/workers/styles.css +1350 -0
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker Management System Initializer
|
|
3
|
+
*
|
|
4
|
+
* Handles initialization and lifecycle management of the worker management system.
|
|
5
|
+
* - Registers shutdown handlers
|
|
6
|
+
* - Initializes monitoring and resource management
|
|
7
|
+
* - Sets up auto-scaling and health checks
|
|
8
|
+
* - Ensures graceful startup and shutdown
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { Env, Logger, workersConfig } from '@zintrust/core';
|
|
12
|
+
import { ResourceMonitor } from './ResourceMonitor';
|
|
13
|
+
import { WorkerFactory } from './WorkerFactory';
|
|
14
|
+
import { WorkerShutdown } from './WorkerShutdown';
|
|
15
|
+
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Types
|
|
18
|
+
// ============================================================================
|
|
19
|
+
|
|
20
|
+
export interface IWorkerInitOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Whether to start resource monitoring on initialization
|
|
23
|
+
* @default true
|
|
24
|
+
*/
|
|
25
|
+
enableResourceMonitoring?: boolean;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Whether to start health monitoring on initialization
|
|
29
|
+
* @default true
|
|
30
|
+
*/
|
|
31
|
+
enableHealthMonitoring?: boolean;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Whether to start auto-scaling on initialization
|
|
35
|
+
* @default false - must be explicitly enabled
|
|
36
|
+
*/
|
|
37
|
+
enableAutoScaling?: boolean;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Whether to register graceful shutdown handlers
|
|
41
|
+
* @default true
|
|
42
|
+
*/
|
|
43
|
+
registerShutdownHandlers?: boolean;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Resource monitoring interval in milliseconds
|
|
47
|
+
* @default 60000 (1 minute)
|
|
48
|
+
*/
|
|
49
|
+
resourceMonitoringInterval?: number;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
interface IInitState {
|
|
53
|
+
initialized: boolean;
|
|
54
|
+
initializedAt: Date | null;
|
|
55
|
+
resourceMonitoring: boolean;
|
|
56
|
+
healthMonitoring: boolean;
|
|
57
|
+
autoScaling: boolean;
|
|
58
|
+
shutdownHandlersRegistered: boolean;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// ============================================================================
|
|
62
|
+
// State
|
|
63
|
+
// ============================================================================
|
|
64
|
+
|
|
65
|
+
const state: IInitState = {
|
|
66
|
+
initialized: false,
|
|
67
|
+
initializedAt: null,
|
|
68
|
+
resourceMonitoring: false,
|
|
69
|
+
healthMonitoring: false,
|
|
70
|
+
autoScaling: false,
|
|
71
|
+
shutdownHandlersRegistered: false,
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// ============================================================================
|
|
75
|
+
// Implementation
|
|
76
|
+
// ============================================================================
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Initialize resource monitoring based on environment and worker settings
|
|
80
|
+
*/
|
|
81
|
+
function initializeResourceMonitoring(
|
|
82
|
+
enableResourceMonitoring: boolean,
|
|
83
|
+
resourceMonitoringInterval: number
|
|
84
|
+
): boolean {
|
|
85
|
+
// Check global environment gate first
|
|
86
|
+
const globalResourceMonitoring = Env.getBool('WORKER_RESOURCE_MONITORING', false);
|
|
87
|
+
|
|
88
|
+
if (enableResourceMonitoring && globalResourceMonitoring) {
|
|
89
|
+
// Check if any workers have resourceMonitoring enabled
|
|
90
|
+
const shouldStart = shouldStartResourceMonitoring();
|
|
91
|
+
|
|
92
|
+
if (shouldStart) {
|
|
93
|
+
if (ResourceMonitor.isRunning() === false) {
|
|
94
|
+
ResourceMonitor.start(resourceMonitoringInterval / 1000);
|
|
95
|
+
}
|
|
96
|
+
Logger.debug('✓ Resource monitoring started (worker requested)');
|
|
97
|
+
return true;
|
|
98
|
+
} else {
|
|
99
|
+
Logger.debug('⏸️ Resource monitoring disabled (no workers requested it)');
|
|
100
|
+
}
|
|
101
|
+
} else if (!globalResourceMonitoring) {
|
|
102
|
+
Logger.debug('⏸️ Resource monitoring disabled (WORKER_RESOURCE_MONITORING=false)');
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Check if any workers have resource monitoring enabled
|
|
110
|
+
*/
|
|
111
|
+
function shouldStartResourceMonitoring(): boolean {
|
|
112
|
+
try {
|
|
113
|
+
const workerNames = WorkerFactory.list();
|
|
114
|
+
return workerNames.some((name) => {
|
|
115
|
+
const worker = WorkerFactory.get(name);
|
|
116
|
+
return worker?.config?.features?.resourceMonitoring === true;
|
|
117
|
+
});
|
|
118
|
+
} catch {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Initialize the worker management system
|
|
125
|
+
*/
|
|
126
|
+
async function initialize(options: IWorkerInitOptions = {}): Promise<void> {
|
|
127
|
+
if (state.initialized) {
|
|
128
|
+
Logger.warn('Worker management system already initialized');
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const {
|
|
133
|
+
enableResourceMonitoring = true,
|
|
134
|
+
enableHealthMonitoring = true,
|
|
135
|
+
enableAutoScaling = false,
|
|
136
|
+
registerShutdownHandlers = true,
|
|
137
|
+
resourceMonitoringInterval = 60000,
|
|
138
|
+
} = options;
|
|
139
|
+
|
|
140
|
+
Logger.info('🚀 Initializing worker management system', {
|
|
141
|
+
enableResourceMonitoring,
|
|
142
|
+
enableHealthMonitoring,
|
|
143
|
+
enableAutoScaling,
|
|
144
|
+
registerShutdownHandlers,
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
try {
|
|
148
|
+
// 1. Register shutdown handlers first (so they're ready for any failures)
|
|
149
|
+
if (registerShutdownHandlers) {
|
|
150
|
+
WorkerShutdown.registerShutdownHandlers();
|
|
151
|
+
state.shutdownHandlersRegistered = true;
|
|
152
|
+
Logger.debug('✓ Shutdown handlers registered');
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// 2. Start resource monitoring (important for scaling decisions)
|
|
156
|
+
state.resourceMonitoring = initializeResourceMonitoring(
|
|
157
|
+
enableResourceMonitoring,
|
|
158
|
+
resourceMonitoringInterval
|
|
159
|
+
);
|
|
160
|
+
|
|
161
|
+
// 3. Enable health monitoring (depends on workers being created)
|
|
162
|
+
if (enableHealthMonitoring) {
|
|
163
|
+
// Health checks will start automatically when workers are created
|
|
164
|
+
state.healthMonitoring = true;
|
|
165
|
+
Logger.debug('✓ Health monitoring enabled');
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// 4. Start auto-scaling if explicitly enabled
|
|
169
|
+
if (enableAutoScaling) {
|
|
170
|
+
// Auto-scaling will evaluate workers when they are created
|
|
171
|
+
state.autoScaling = true;
|
|
172
|
+
Logger.debug('✓ Auto-scaling enabled');
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
state.initialized = true;
|
|
176
|
+
state.initializedAt = new Date();
|
|
177
|
+
|
|
178
|
+
Logger.info('✅ Worker management system initialized successfully', {
|
|
179
|
+
timestamp: state.initializedAt.toISOString(),
|
|
180
|
+
});
|
|
181
|
+
} catch (error) {
|
|
182
|
+
Logger.error('❌ Failed to initialize worker management system', error);
|
|
183
|
+
throw error;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
async function autoStartPersistedWorkers(): Promise<void> {
|
|
188
|
+
// Check if auto-start is enabled globally via environment variable
|
|
189
|
+
Logger.debug('Auto-start check', {
|
|
190
|
+
envAutoStart: process.env['WORKER_AUTO_START'],
|
|
191
|
+
configAutoStart: workersConfig.defaultWorker?.autoStart,
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
if (workersConfig.defaultWorker?.autoStart !== true) {
|
|
195
|
+
Logger.debug('Auto-start disabled - WORKER_AUTO_START is not true');
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
try {
|
|
200
|
+
const records = await WorkerFactory.listPersistedRecords();
|
|
201
|
+
Logger.debug('Found persisted records', {
|
|
202
|
+
count: records.length,
|
|
203
|
+
records: records.map((r) => ({ name: r.name, autoStart: r.autoStart })),
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
const candidates = records.filter((record) => {
|
|
207
|
+
// If autoStart is explicitly true, always include
|
|
208
|
+
if (record.autoStart === true) {
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
// If autoStart is null or undefined and global auto-start is enabled, include
|
|
212
|
+
if (
|
|
213
|
+
(record.autoStart === null || record.autoStart === undefined) &&
|
|
214
|
+
workersConfig.defaultWorker?.autoStart === true
|
|
215
|
+
) {
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
return false;
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
Logger.debug('Auto-start candidates', {
|
|
223
|
+
count: candidates.length,
|
|
224
|
+
candidates: candidates.map((c) => c.name),
|
|
225
|
+
});
|
|
226
|
+
const results = await Promise.all(
|
|
227
|
+
candidates.map(async (record) => {
|
|
228
|
+
if (WorkerFactory.get(record.name)) {
|
|
229
|
+
return { name: record.name, started: false, skipped: true };
|
|
230
|
+
}
|
|
231
|
+
try {
|
|
232
|
+
await WorkerFactory.startFromPersisted(record.name);
|
|
233
|
+
return { name: record.name, started: true, skipped: false };
|
|
234
|
+
} catch (error) {
|
|
235
|
+
Logger.warn(`Auto-start failed for worker ${record.name}`, error as Error);
|
|
236
|
+
return { name: record.name, started: false, skipped: false };
|
|
237
|
+
}
|
|
238
|
+
})
|
|
239
|
+
);
|
|
240
|
+
|
|
241
|
+
const startedCount = results.filter((item) => item.started).length;
|
|
242
|
+
const skippedCount = results.filter((item) => item.skipped).length;
|
|
243
|
+
Logger.info('Auto-started persisted workers', {
|
|
244
|
+
total: candidates.length,
|
|
245
|
+
started: startedCount,
|
|
246
|
+
skipped: skippedCount,
|
|
247
|
+
});
|
|
248
|
+
} catch (error) {
|
|
249
|
+
Logger.warn('Auto-start persisted workers failed', error as Error);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Check if worker management system is initialized
|
|
255
|
+
*/
|
|
256
|
+
function isInitialized(): boolean {
|
|
257
|
+
return state.initialized;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Get initialization state
|
|
262
|
+
*/
|
|
263
|
+
function getInitState(): Readonly<IInitState> {
|
|
264
|
+
return { ...state };
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Graceful shutdown of worker management system
|
|
269
|
+
* (convenience method that delegates to WorkerShutdown)
|
|
270
|
+
*/
|
|
271
|
+
async function shutdown(): Promise<void> {
|
|
272
|
+
if (!state.initialized) {
|
|
273
|
+
Logger.warn('Worker management system not initialized, nothing to shutdown');
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
await WorkerShutdown.shutdown();
|
|
278
|
+
state.initialized = false;
|
|
279
|
+
state.resourceMonitoring = false;
|
|
280
|
+
state.healthMonitoring = false;
|
|
281
|
+
state.autoScaling = false;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// ============================================================================
|
|
285
|
+
// Public API (Sealed Namespace)
|
|
286
|
+
// ============================================================================
|
|
287
|
+
|
|
288
|
+
export const WorkerInit = Object.freeze({
|
|
289
|
+
/**
|
|
290
|
+
* Initialize the worker management system
|
|
291
|
+
*/
|
|
292
|
+
initialize,
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Check if worker management system is initialized
|
|
296
|
+
*/
|
|
297
|
+
isInitialized,
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Get initialization state
|
|
301
|
+
*/
|
|
302
|
+
getInitState,
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Graceful shutdown of worker management system
|
|
306
|
+
*/
|
|
307
|
+
shutdown,
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Start persisted workers after boot completes
|
|
311
|
+
*/
|
|
312
|
+
autoStartPersistedWorkers,
|
|
313
|
+
});
|