nestjs-temporal-core 3.0.10 → 3.0.12
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/CHANGELOG.md +80 -0
- package/README.md +1755 -693
- package/dist/constants.d.ts +49 -151
- package/dist/constants.js +38 -141
- package/dist/constants.js.map +1 -1
- package/dist/decorators/activity.decorator.js +75 -15
- package/dist/decorators/activity.decorator.js.map +1 -1
- package/dist/decorators/index.d.ts +1 -3
- package/dist/decorators/index.js +4 -13
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/workflow.decorator.d.ts +7 -3
- package/dist/decorators/workflow.decorator.js +161 -48
- package/dist/decorators/workflow.decorator.js.map +1 -1
- package/dist/health/temporal-health.controller.d.ts +7 -0
- package/dist/health/temporal-health.controller.js +77 -0
- package/dist/health/temporal-health.controller.js.map +1 -0
- package/dist/health/temporal-health.module.d.ts +2 -0
- package/dist/health/temporal-health.module.js +20 -0
- package/dist/health/temporal-health.module.js.map +1 -0
- package/dist/index.d.ts +10 -20
- package/dist/index.js +15 -30
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +773 -160
- package/dist/interfaces.js +1 -2
- package/dist/interfaces.js.map +1 -1
- package/dist/providers/temporal-connection.factory.d.ts +28 -0
- package/dist/providers/temporal-connection.factory.js +194 -0
- package/dist/providers/temporal-connection.factory.js.map +1 -0
- package/dist/services/temporal-client.service.d.ts +33 -0
- package/dist/services/temporal-client.service.js +285 -0
- package/dist/services/temporal-client.service.js.map +1 -0
- package/dist/services/temporal-discovery.service.d.ts +34 -0
- package/dist/services/temporal-discovery.service.js +348 -0
- package/dist/services/temporal-discovery.service.js.map +1 -0
- package/dist/services/temporal-metadata.service.d.ts +37 -0
- package/dist/services/temporal-metadata.service.js +512 -0
- package/dist/services/temporal-metadata.service.js.map +1 -0
- package/dist/services/temporal-schedule.service.d.ts +35 -0
- package/dist/services/temporal-schedule.service.js +380 -0
- package/dist/services/temporal-schedule.service.js.map +1 -0
- package/dist/services/temporal-worker.service.d.ts +67 -0
- package/dist/services/temporal-worker.service.js +845 -0
- package/dist/services/temporal-worker.service.js.map +1 -0
- package/dist/services/temporal.service.d.ts +92 -0
- package/dist/services/temporal.service.js +621 -0
- package/dist/services/temporal.service.js.map +1 -0
- package/dist/temporal.module.d.ts +6 -9
- package/dist/temporal.module.js +160 -109
- package/dist/temporal.module.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.js +5 -8
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.d.ts +10 -4
- package/dist/utils/logger.js +77 -106
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/metadata.d.ts +1 -3
- package/dist/utils/metadata.js +8 -18
- package/dist/utils/metadata.js.map +1 -1
- package/dist/utils/validation.d.ts +16 -2
- package/dist/utils/validation.js +103 -9
- package/dist/utils/validation.js.map +1 -1
- package/package.json +37 -26
- package/dist/activity/index.d.ts +0 -2
- package/dist/activity/index.js +0 -19
- package/dist/activity/index.js.map +0 -1
- package/dist/activity/temporal-activity.module.d.ts +0 -11
- package/dist/activity/temporal-activity.module.js +0 -52
- package/dist/activity/temporal-activity.module.js.map +0 -1
- package/dist/activity/temporal-activity.service.d.ts +0 -46
- package/dist/activity/temporal-activity.service.js +0 -192
- package/dist/activity/temporal-activity.service.js.map +0 -1
- package/dist/client/index.d.ts +0 -3
- package/dist/client/index.js +0 -20
- package/dist/client/index.js.map +0 -1
- package/dist/client/temporal-client.module.d.ts +0 -18
- package/dist/client/temporal-client.module.js +0 -198
- package/dist/client/temporal-client.module.js.map +0 -1
- package/dist/client/temporal-client.service.d.ts +0 -35
- package/dist/client/temporal-client.service.js +0 -187
- package/dist/client/temporal-client.service.js.map +0 -1
- package/dist/client/temporal-schedule.service.d.ts +0 -41
- package/dist/client/temporal-schedule.service.js +0 -204
- package/dist/client/temporal-schedule.service.js.map +0 -1
- package/dist/decorators/parameter.decorator.d.ts +0 -5
- package/dist/decorators/parameter.decorator.js +0 -57
- package/dist/decorators/parameter.decorator.js.map +0 -1
- package/dist/decorators/scheduling.decorator.d.ts +0 -4
- package/dist/decorators/scheduling.decorator.js +0 -44
- package/dist/decorators/scheduling.decorator.js.map +0 -1
- package/dist/discovery/index.d.ts +0 -2
- package/dist/discovery/index.js +0 -19
- package/dist/discovery/index.js.map +0 -1
- package/dist/discovery/temporal-discovery.service.d.ts +0 -39
- package/dist/discovery/temporal-discovery.service.js +0 -191
- package/dist/discovery/temporal-discovery.service.js.map +0 -1
- package/dist/discovery/temporal-schedule-manager.service.d.ts +0 -41
- package/dist/discovery/temporal-schedule-manager.service.js +0 -238
- package/dist/discovery/temporal-schedule-manager.service.js.map +0 -1
- package/dist/schedules/index.d.ts +0 -2
- package/dist/schedules/index.js +0 -19
- package/dist/schedules/index.js.map +0 -1
- package/dist/schedules/temporal-schedules.module.d.ts +0 -11
- package/dist/schedules/temporal-schedules.module.js +0 -55
- package/dist/schedules/temporal-schedules.module.js.map +0 -1
- package/dist/schedules/temporal-schedules.service.d.ts +0 -52
- package/dist/schedules/temporal-schedules.service.js +0 -221
- package/dist/schedules/temporal-schedules.service.js.map +0 -1
- package/dist/temporal.service.d.ts +0 -77
- package/dist/temporal.service.js +0 -243
- package/dist/temporal.service.js.map +0 -1
- package/dist/worker/index.d.ts +0 -3
- package/dist/worker/index.js +0 -20
- package/dist/worker/index.js.map +0 -1
- package/dist/worker/temporal-metadata.accessor.d.ts +0 -32
- package/dist/worker/temporal-metadata.accessor.js +0 -208
- package/dist/worker/temporal-metadata.accessor.js.map +0 -1
- package/dist/worker/temporal-worker-manager.service.d.ts +0 -49
- package/dist/worker/temporal-worker-manager.service.js +0 -389
- package/dist/worker/temporal-worker-manager.service.js.map +0 -1
- package/dist/worker/temporal-worker.module.d.ts +0 -18
- package/dist/worker/temporal-worker.module.js +0 -156
- package/dist/worker/temporal-worker.module.js.map +0 -1
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var TemporalScheduleService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.TemporalScheduleService = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const core_1 = require("@nestjs/core");
|
|
19
|
+
const client_1 = require("@temporalio/client");
|
|
20
|
+
const constants_1 = require("../constants");
|
|
21
|
+
const temporal_metadata_service_1 = require("./temporal-metadata.service");
|
|
22
|
+
const logger_1 = require("../utils/logger");
|
|
23
|
+
let TemporalScheduleService = TemporalScheduleService_1 = class TemporalScheduleService {
|
|
24
|
+
constructor(options, client, discoveryService, metadataAccessor) {
|
|
25
|
+
this.options = options;
|
|
26
|
+
this.client = client;
|
|
27
|
+
this.discoveryService = discoveryService;
|
|
28
|
+
this.metadataAccessor = metadataAccessor;
|
|
29
|
+
this.logger = new common_1.Logger(TemporalScheduleService_1.name);
|
|
30
|
+
this.temporalLogger = new logger_1.TemporalLogger(TemporalScheduleService_1.name);
|
|
31
|
+
this.scheduleHandles = new Map();
|
|
32
|
+
this.isInitialized = false;
|
|
33
|
+
}
|
|
34
|
+
async onModuleInit() {
|
|
35
|
+
try {
|
|
36
|
+
this.logger.log('Initializing Temporal Schedule Service...');
|
|
37
|
+
await this.initializeScheduleClient();
|
|
38
|
+
await this.discoverAndRegisterSchedules();
|
|
39
|
+
this.isInitialized = true;
|
|
40
|
+
this.logger.log('Temporal Schedule Service initialized successfully');
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
this.logger.error(`Failed to initialize Temporal Schedule Service: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async onModuleDestroy() {
|
|
48
|
+
try {
|
|
49
|
+
this.logger.log('Shutting down Temporal Schedule Service...');
|
|
50
|
+
this.scheduleHandles.clear();
|
|
51
|
+
this.isInitialized = false;
|
|
52
|
+
this.logger.log('Temporal Schedule Service shut down successfully');
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
this.logger.error(`Error during schedule service shutdown: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async initializeScheduleClient() {
|
|
59
|
+
try {
|
|
60
|
+
if (this.client?.schedule) {
|
|
61
|
+
this.scheduleClient = this.client.schedule;
|
|
62
|
+
this.temporalLogger.debug('Schedule client initialized from existing client');
|
|
63
|
+
return {
|
|
64
|
+
success: true,
|
|
65
|
+
client: this.scheduleClient,
|
|
66
|
+
source: 'existing',
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
try {
|
|
71
|
+
this.scheduleClient = new client_1.ScheduleClient({
|
|
72
|
+
connection: this.client.connection,
|
|
73
|
+
namespace: this.options.connection?.namespace || 'default',
|
|
74
|
+
});
|
|
75
|
+
this.temporalLogger.debug('Schedule client initialized successfully');
|
|
76
|
+
return {
|
|
77
|
+
success: true,
|
|
78
|
+
client: this.scheduleClient,
|
|
79
|
+
source: 'new',
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
84
|
+
this.logger.warn(`Schedule client not available: ${errorMessage}`);
|
|
85
|
+
this.scheduleClient = undefined;
|
|
86
|
+
return {
|
|
87
|
+
success: false,
|
|
88
|
+
error: error instanceof Error ? error : new Error(errorMessage),
|
|
89
|
+
source: 'none',
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
96
|
+
this.logger.error(`Failed to initialize schedule client: ${errorMessage}`);
|
|
97
|
+
this.scheduleClient = undefined;
|
|
98
|
+
return {
|
|
99
|
+
success: false,
|
|
100
|
+
error: error instanceof Error ? error : new Error(errorMessage),
|
|
101
|
+
source: 'none',
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
async discoverAndRegisterSchedules() {
|
|
106
|
+
const startTime = Date.now();
|
|
107
|
+
const discoveredCount = 0;
|
|
108
|
+
try {
|
|
109
|
+
this.temporalLogger.debug('Schedule discovery skipped - schedule decorators not implemented');
|
|
110
|
+
const duration = Date.now() - startTime;
|
|
111
|
+
this.temporalLogger.debug(`Discovered and registered ${discoveredCount} scheduled workflows`);
|
|
112
|
+
return {
|
|
113
|
+
success: true,
|
|
114
|
+
discoveredCount,
|
|
115
|
+
errors: [],
|
|
116
|
+
duration,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
121
|
+
this.logger.error(`Failed to discover schedules: ${errorMessage}`);
|
|
122
|
+
return {
|
|
123
|
+
success: false,
|
|
124
|
+
discoveredCount: 0,
|
|
125
|
+
errors: [{ schedule: 'discovery', error: errorMessage }],
|
|
126
|
+
duration: Date.now() - startTime,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
async registerScheduledWorkflow(instance, metatype, scheduleMetadata) {
|
|
131
|
+
try {
|
|
132
|
+
const scheduleId = scheduleMetadata.scheduleId || `${metatype.name}-schedule`;
|
|
133
|
+
const workflowType = scheduleMetadata.workflowType || metatype.name;
|
|
134
|
+
const scheduleSpecResult = this.buildScheduleSpec(scheduleMetadata);
|
|
135
|
+
if (!scheduleSpecResult.success) {
|
|
136
|
+
return {
|
|
137
|
+
success: false,
|
|
138
|
+
scheduleId,
|
|
139
|
+
error: scheduleSpecResult.error,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
const workflowOptions = this.buildWorkflowOptions(scheduleMetadata);
|
|
143
|
+
const action = {
|
|
144
|
+
type: 'startWorkflow',
|
|
145
|
+
workflowType,
|
|
146
|
+
taskQueue: scheduleMetadata.taskQueue || 'default',
|
|
147
|
+
args: scheduleMetadata.args || [],
|
|
148
|
+
...workflowOptions,
|
|
149
|
+
};
|
|
150
|
+
const scheduleOptions = {
|
|
151
|
+
scheduleId,
|
|
152
|
+
spec: scheduleSpecResult.spec,
|
|
153
|
+
action,
|
|
154
|
+
memo: scheduleMetadata.memo || {},
|
|
155
|
+
searchAttributes: scheduleMetadata.searchAttributes || {},
|
|
156
|
+
};
|
|
157
|
+
const scheduleHandle = await this.scheduleClient.create(scheduleOptions);
|
|
158
|
+
this.scheduleHandles.set(scheduleId, scheduleHandle);
|
|
159
|
+
this.temporalLogger.debug(`Registered scheduled workflow: ${scheduleId} with type: ${workflowType}`);
|
|
160
|
+
return {
|
|
161
|
+
success: true,
|
|
162
|
+
scheduleId,
|
|
163
|
+
handle: scheduleHandle,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
168
|
+
this.logger.error(`Failed to register scheduled workflow: ${errorMessage}`);
|
|
169
|
+
return {
|
|
170
|
+
success: false,
|
|
171
|
+
scheduleId: scheduleMetadata.scheduleId || `${metatype.name}-schedule`,
|
|
172
|
+
error: error instanceof Error ? error : new Error(errorMessage),
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
buildScheduleSpec(scheduleMetadata) {
|
|
177
|
+
try {
|
|
178
|
+
const spec = {};
|
|
179
|
+
if (scheduleMetadata.cron) {
|
|
180
|
+
spec.cronExpressions = Array.isArray(scheduleMetadata.cron)
|
|
181
|
+
? scheduleMetadata.cron
|
|
182
|
+
: [scheduleMetadata.cron];
|
|
183
|
+
}
|
|
184
|
+
if (scheduleMetadata.interval) {
|
|
185
|
+
const intervals = Array.isArray(scheduleMetadata.interval)
|
|
186
|
+
? scheduleMetadata.interval
|
|
187
|
+
: [scheduleMetadata.interval];
|
|
188
|
+
const parsedIntervals = intervals
|
|
189
|
+
.map((interval) => {
|
|
190
|
+
const result = this.parseInterval(interval);
|
|
191
|
+
return result.success ? result.interval : null;
|
|
192
|
+
})
|
|
193
|
+
.filter(Boolean);
|
|
194
|
+
if (parsedIntervals.length > 0) {
|
|
195
|
+
spec.intervals = parsedIntervals;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (scheduleMetadata.calendar) {
|
|
199
|
+
spec.calendars = Array.isArray(scheduleMetadata.calendar)
|
|
200
|
+
? scheduleMetadata.calendar
|
|
201
|
+
: [scheduleMetadata.calendar];
|
|
202
|
+
}
|
|
203
|
+
if (scheduleMetadata.timezone) {
|
|
204
|
+
spec.timeZone = scheduleMetadata.timezone;
|
|
205
|
+
}
|
|
206
|
+
if (scheduleMetadata.jitter) {
|
|
207
|
+
spec.jitter = scheduleMetadata.jitter;
|
|
208
|
+
}
|
|
209
|
+
return {
|
|
210
|
+
success: true,
|
|
211
|
+
spec,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
return {
|
|
216
|
+
success: false,
|
|
217
|
+
error: error instanceof Error ? error : new Error('Unknown error'),
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
buildWorkflowOptions(scheduleMetadata) {
|
|
222
|
+
const options = {};
|
|
223
|
+
if (scheduleMetadata.taskQueue) {
|
|
224
|
+
options.taskQueue = scheduleMetadata.taskQueue;
|
|
225
|
+
}
|
|
226
|
+
if (scheduleMetadata.workflowId) {
|
|
227
|
+
options.workflowId = scheduleMetadata.workflowId;
|
|
228
|
+
}
|
|
229
|
+
if (scheduleMetadata.workflowExecutionTimeout) {
|
|
230
|
+
options.workflowExecutionTimeout = scheduleMetadata.workflowExecutionTimeout;
|
|
231
|
+
}
|
|
232
|
+
if (scheduleMetadata.workflowRunTimeout) {
|
|
233
|
+
options.workflowRunTimeout = scheduleMetadata.workflowRunTimeout;
|
|
234
|
+
}
|
|
235
|
+
if (scheduleMetadata.workflowTaskTimeout) {
|
|
236
|
+
options.workflowTaskTimeout = scheduleMetadata.workflowTaskTimeout;
|
|
237
|
+
}
|
|
238
|
+
if (scheduleMetadata.retryPolicy) {
|
|
239
|
+
options.retryPolicy = scheduleMetadata.retryPolicy;
|
|
240
|
+
}
|
|
241
|
+
if (scheduleMetadata.args) {
|
|
242
|
+
options.args = scheduleMetadata.args;
|
|
243
|
+
}
|
|
244
|
+
return options;
|
|
245
|
+
}
|
|
246
|
+
parseInterval(interval) {
|
|
247
|
+
try {
|
|
248
|
+
if (typeof interval === 'number') {
|
|
249
|
+
return {
|
|
250
|
+
success: true,
|
|
251
|
+
interval: { every: `${interval}ms` },
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
const intervalStr = interval.toString().toLowerCase();
|
|
255
|
+
if (intervalStr.includes('ms')) {
|
|
256
|
+
return {
|
|
257
|
+
success: true,
|
|
258
|
+
interval: { every: intervalStr },
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
if (intervalStr.includes('s')) {
|
|
262
|
+
return {
|
|
263
|
+
success: true,
|
|
264
|
+
interval: { every: intervalStr },
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
if (intervalStr.includes('m')) {
|
|
268
|
+
return {
|
|
269
|
+
success: true,
|
|
270
|
+
interval: { every: intervalStr },
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
if (intervalStr.includes('h')) {
|
|
274
|
+
return {
|
|
275
|
+
success: true,
|
|
276
|
+
interval: { every: intervalStr },
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
return {
|
|
280
|
+
success: true,
|
|
281
|
+
interval: { every: `${interval}ms` },
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
catch (error) {
|
|
285
|
+
return {
|
|
286
|
+
success: false,
|
|
287
|
+
error: error instanceof Error ? error : new Error('Unknown error'),
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
async createSchedule(options) {
|
|
292
|
+
this.ensureInitialized();
|
|
293
|
+
try {
|
|
294
|
+
const scheduleHandle = await this.scheduleClient.create(options);
|
|
295
|
+
this.scheduleHandles.set(options.scheduleId, scheduleHandle);
|
|
296
|
+
this.temporalLogger.debug(`Created schedule: ${options.scheduleId}`);
|
|
297
|
+
return {
|
|
298
|
+
success: true,
|
|
299
|
+
scheduleId: options.scheduleId,
|
|
300
|
+
handle: scheduleHandle,
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
305
|
+
this.logger.error(`Failed to create schedule ${options.scheduleId}: ${errorMessage}`);
|
|
306
|
+
return {
|
|
307
|
+
success: false,
|
|
308
|
+
scheduleId: options.scheduleId,
|
|
309
|
+
error: error instanceof Error ? error : new Error(errorMessage),
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
async getSchedule(scheduleId) {
|
|
314
|
+
this.ensureInitialized();
|
|
315
|
+
try {
|
|
316
|
+
let scheduleHandle = this.scheduleHandles.get(scheduleId);
|
|
317
|
+
if (!scheduleHandle) {
|
|
318
|
+
scheduleHandle = this.scheduleClient.getHandle(scheduleId);
|
|
319
|
+
this.scheduleHandles.set(scheduleId, scheduleHandle);
|
|
320
|
+
}
|
|
321
|
+
return {
|
|
322
|
+
success: true,
|
|
323
|
+
handle: scheduleHandle,
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
328
|
+
this.logger.error(`Failed to get schedule ${scheduleId}: ${errorMessage}`);
|
|
329
|
+
return {
|
|
330
|
+
success: false,
|
|
331
|
+
error: error instanceof Error ? error : new Error(errorMessage),
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
isHealthy() {
|
|
336
|
+
return this.isInitialized;
|
|
337
|
+
}
|
|
338
|
+
getScheduleStats() {
|
|
339
|
+
return {
|
|
340
|
+
total: this.scheduleHandles.size,
|
|
341
|
+
active: this.scheduleHandles.size,
|
|
342
|
+
inactive: 0,
|
|
343
|
+
errors: 0,
|
|
344
|
+
lastUpdated: new Date(),
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
getStatus() {
|
|
348
|
+
return {
|
|
349
|
+
available: this.isInitialized,
|
|
350
|
+
healthy: this.isHealthy(),
|
|
351
|
+
schedulesSupported: !!this.scheduleClient,
|
|
352
|
+
initialized: this.isInitialized,
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
getHealth() {
|
|
356
|
+
return {
|
|
357
|
+
status: this.isInitialized ? 'healthy' : 'unhealthy',
|
|
358
|
+
schedulesCount: this.scheduleHandles.size,
|
|
359
|
+
isInitialized: this.isInitialized,
|
|
360
|
+
details: {
|
|
361
|
+
scheduleIds: Array.from(this.scheduleHandles.keys()),
|
|
362
|
+
hasScheduleClient: !!this.scheduleClient,
|
|
363
|
+
},
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
ensureInitialized() {
|
|
367
|
+
if (!this.isInitialized) {
|
|
368
|
+
throw new Error('Temporal Schedule Service is not initialized');
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
};
|
|
372
|
+
exports.TemporalScheduleService = TemporalScheduleService;
|
|
373
|
+
exports.TemporalScheduleService = TemporalScheduleService = TemporalScheduleService_1 = __decorate([
|
|
374
|
+
(0, common_1.Injectable)(),
|
|
375
|
+
__param(0, (0, common_1.Inject)(constants_1.TEMPORAL_MODULE_OPTIONS)),
|
|
376
|
+
__param(1, (0, common_1.Inject)(constants_1.TEMPORAL_CLIENT)),
|
|
377
|
+
__metadata("design:paramtypes", [Object, Object, core_1.DiscoveryService,
|
|
378
|
+
temporal_metadata_service_1.TemporalMetadataAccessor])
|
|
379
|
+
], TemporalScheduleService);
|
|
380
|
+
//# sourceMappingURL=temporal-schedule.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-schedule.service.js","sourceRoot":"","sources":["../../src/services/temporal-schedule.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA2F;AAC3F,uCAAgD;AAChD,+CAAoE;AACpE,4CAAwE;AAmBxE,2EAAuE;AACvE,4CAAiD;AAM1C,IAAM,uBAAuB,+BAA7B,MAAM,uBAAuB;IAOhC,YAEI,OAAyC,EAEzC,MAAuF,EACtE,gBAAkC,EAClC,gBAA0C;QAJ1C,YAAO,GAAP,OAAO,CAAiB;QAExB,WAAM,GAAN,MAAM,CAAgE;QACtE,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,qBAAgB,GAAhB,gBAAgB,CAA0B;QAZ9C,WAAM,GAAG,IAAI,eAAM,CAAC,yBAAuB,CAAC,IAAI,CAAC,CAAC;QAClD,mBAAc,GAAG,IAAI,uBAAc,CAAC,yBAAuB,CAAC,IAAI,CAAC,CAAC;QAE3E,oBAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;QACpD,kBAAa,GAAG,KAAK,CAAC;IAS3B,CAAC;IAKJ,KAAK,CAAC,YAAY;QACd,IAAI,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YAC7D,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;YAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,mDAAmD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAChH,CAAC;YACF,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,eAAe;QACjB,IAAI,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC9D,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,2CAA2C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACxG,CAAC;QACN,CAAC;IACL,CAAC;IAKO,KAAK,CAAC,wBAAwB;QAClC,IAAI,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC3C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBAC9E,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,IAAI,CAAC,cAAc;oBAC3B,MAAM,EAAE,UAAU;iBACrB,CAAC;YACN,CAAC;iBAAM,CAAC;gBAEJ,IAAI,CAAC;oBACD,IAAI,CAAC,cAAc,GAAG,IAAI,uBAAc,CAAC;wBACrC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAmB;wBAC3C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,IAAI,SAAS;qBAC7D,CAAC,CAAC;oBACH,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBACtE,OAAO;wBACH,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,IAAI,CAAC,cAAc;wBAC3B,MAAM,EAAE,KAAK;qBAChB,CAAC;gBACN,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;oBAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;oBACnE,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;oBAChC,OAAO;wBACH,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC;wBAC/D,MAAM,EAAE,MAAM;qBACjB,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,YAAY,EAAE,CAAC,CAAC;YAC3E,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC;gBAC/D,MAAM,EAAE,MAAM;aACjB,CAAC;QACN,CAAC;IACL,CAAC;IAKO,KAAK,CAAC,4BAA4B;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,eAAe,GAAG,CAAC,CAAC;QAE1B,IAAI,CAAC;YAGD,IAAI,CAAC,cAAc,CAAC,KAAK,CACrB,kEAAkE,CACrE,CAAC;YAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,KAAK,CACrB,6BAA6B,eAAe,sBAAsB,CACrE,CAAC;YAEF,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,eAAe;gBACf,MAAM,EAAE,EAAE;gBACV,QAAQ;aACX,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;YACnE,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,CAAC;gBAClB,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;gBACxD,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC,CAAC;QACN,CAAC;IACL,CAAC;IAKO,KAAK,CAAC,yBAAyB,CACnC,QAAiB,EACjB,QAAkB,EAClB,gBAAyC;QAEzC,IAAI,CAAC;YACD,MAAM,UAAU,GACX,gBAAgB,CAAC,UAAqB,IAAI,GAAG,QAAQ,CAAC,IAAI,WAAW,CAAC;YAC3E,MAAM,YAAY,GAAI,gBAAgB,CAAC,YAAuB,IAAI,QAAQ,CAAC,IAAI,CAAC;YAEhF,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC9B,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,UAAU;oBACV,KAAK,EAAE,kBAAkB,CAAC,KAAK;iBAClC,CAAC;YACN,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;YAGpE,MAAM,MAAM,GAA2B;gBACnC,IAAI,EAAE,eAAe;gBACrB,YAAY;gBACZ,SAAS,EAAG,gBAAgB,CAAC,SAAoB,IAAI,SAAS;gBAC9D,IAAI,EAAG,gBAAgB,CAAC,IAAkB,IAAI,EAAE;gBAChD,GAAG,eAAe;aACrB,CAAC;YAEF,MAAM,eAAe,GAAoB;gBACrC,UAAU;gBACV,IAAI,EAAE,kBAAkB,CAAC,IAAK;gBAC9B,MAAM;gBACN,IAAI,EAAG,gBAAgB,CAAC,IAAgC,IAAI,EAAE;gBAC9D,gBAAgB,EACX,gBAAgB,CAAC,gBAA4C,IAAI,EAAE;aAC3E,CAAC;YAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAe,CAAC,MAAM,CAAC,eAAwB,CAAC,CAAC;YAEnF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAErD,IAAI,CAAC,cAAc,CAAC,KAAK,CACrB,kCAAkC,UAAU,eAAe,YAAY,EAAE,CAC5E,CAAC;YAEF,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,UAAU;gBACV,MAAM,EAAE,cAAc;aACzB,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,YAAY,EAAE,CAAC,CAAC;YAC5E,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,UAAU,EAAG,gBAAgB,CAAC,UAAqB,IAAI,GAAG,QAAQ,CAAC,IAAI,WAAW;gBAClF,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC;aAClE,CAAC;QACN,CAAC;IACL,CAAC;IAKO,iBAAiB,CACrB,gBAAyC;QAEzC,IAAI,CAAC;YACD,MAAM,IAAI,GAA4B,EAAE,CAAC;YAGzC,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;oBACvD,CAAC,CAAC,gBAAgB,CAAC,IAAI;oBACvB,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YAGD,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC;oBACtD,CAAC,CAAC,gBAAgB,CAAC,QAAQ;oBAC3B,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAClC,MAAM,eAAe,GAAG,SAAS;qBAC5B,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACd,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnD,CAAC,CAAC;qBACD,MAAM,CAAC,OAAO,CAAC,CAAC;gBAErB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;gBACrC,CAAC;YACL,CAAC;YAGD,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC;oBACrD,CAAC,CAAC,gBAAgB,CAAC,QAAQ;oBAC3B,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;YAGD,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;YAC9C,CAAC;YAGD,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;YAC1C,CAAC;YAED,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,IAAI;aACP,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC;aACrE,CAAC;QACN,CAAC;IACL,CAAC;IAKO,oBAAoB,CACxB,gBAAyC;QAEzC,MAAM,OAAO,GAA4B,EAAE,CAAC;QAE5C,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAmB,CAAC;QAC7D,CAAC;QAED,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;YAC9B,OAAO,CAAC,UAAU,GAAG,gBAAgB,CAAC,UAAoB,CAAC;QAC/D,CAAC;QAED,IAAI,gBAAgB,CAAC,wBAAwB,EAAE,CAAC;YAC5C,OAAO,CAAC,wBAAwB,GAAG,gBAAgB,CAAC,wBAAkC,CAAC;QAC3F,CAAC;QAED,IAAI,gBAAgB,CAAC,kBAAkB,EAAE,CAAC;YACtC,OAAO,CAAC,kBAAkB,GAAG,gBAAgB,CAAC,kBAA4B,CAAC;QAC/E,CAAC;QAED,IAAI,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;YACvC,OAAO,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,mBAA6B,CAAC;QACjF,CAAC;QAED,IAAI,gBAAgB,CAAC,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,WAAW,GAAG,gBAAgB,CAAC,WAAsC,CAAC;QAClF,CAAC;QAED,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAiB,CAAC;QACtD,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAKO,aAAa,CAAC,QAAyB;QAC3C,IAAI,CAAC;YACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,IAAI,EAAE;iBACvC,CAAC;YACN,CAAC;YAGD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;YAEtD,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;iBACnC,CAAC;YACN,CAAC;YAED,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;iBACnC,CAAC;YACN,CAAC;YAED,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;iBACnC,CAAC;YACN,CAAC;YAED,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;iBACnC,CAAC;YACN,CAAC;YAGD,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,IAAI,EAAE;aACvC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC;aACrE,CAAC;QACN,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,cAAc,CAAC,OAAgC;QACjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAe,CAAC,MAAM,CAAC,OAAgB,CAAC,CAAC;YAC3E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAE7D,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,qBAAqB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAErE,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,cAAc;aACzB,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,OAAO,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC,CAAC;YACtF,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC;aAClE,CAAC;QACN,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,WAAW,CAAC,UAAkB;QAChC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC;YAED,IAAI,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAE1D,IAAI,CAAC,cAAc,EAAE,CAAC;gBAElB,cAAc,GAAG,IAAI,CAAC,cAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC5D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACzD,CAAC;YAED,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,cAAc;aACzB,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,UAAU,KAAK,YAAY,EAAE,CAAC,CAAC;YAC3E,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC;aAClE,CAAC;QACN,CAAC;IACL,CAAC;IAKD,SAAS;QACL,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAKD,gBAAgB;QACZ,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;YAChC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;YACjC,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,IAAI,IAAI,EAAE;SAC1B,CAAC;IACN,CAAC;IAKD,SAAS;QACL,OAAO;YACH,SAAS,EAAE,IAAI,CAAC,aAAa;YAC7B,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE;YACzB,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc;YACzC,WAAW,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC;IACN,CAAC;IAKD,SAAS;QACL,OAAO;YACH,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;YACpD,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;YACzC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,OAAO,EAAE;gBACL,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;gBACpD,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc;aAC3C;SACJ,CAAC;IACN,CAAC;IAKO,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;CACJ,CAAA;AAzdY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;IASJ,WAAA,IAAA,eAAM,EAAC,mCAAuB,CAAC,CAAA;IAE/B,WAAA,IAAA,eAAM,EAAC,2BAAe,CAAC,CAAA;qDAEW,uBAAgB;QAChB,oDAAwB;GAbtD,uBAAuB,CAydnC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { OnModuleInit, OnModuleDestroy, OnApplicationBootstrap } from '@nestjs/common';
|
|
2
|
+
import { Worker, NativeConnection } from '@temporalio/worker';
|
|
3
|
+
import { TemporalOptions, WorkerStatus, WorkerRestartResult, WorkerHealthStatus, WorkerStats, ActivityRegistrationResult, WorkerDefinition, MultipleWorkersInfo, CreateWorkerResult } from '../interfaces';
|
|
4
|
+
import { TemporalDiscoveryService } from './temporal-discovery.service';
|
|
5
|
+
export declare class TemporalWorkerManagerService implements OnModuleInit, OnModuleDestroy, OnApplicationBootstrap {
|
|
6
|
+
private readonly discoveryService;
|
|
7
|
+
private readonly options;
|
|
8
|
+
private readonly injectedConnection;
|
|
9
|
+
private readonly logger;
|
|
10
|
+
private worker;
|
|
11
|
+
private restartCount;
|
|
12
|
+
private readonly maxRestarts;
|
|
13
|
+
private isInitialized;
|
|
14
|
+
private isRunning;
|
|
15
|
+
private lastError;
|
|
16
|
+
private startedAt;
|
|
17
|
+
private readonly activities;
|
|
18
|
+
private readonly workers;
|
|
19
|
+
private connection;
|
|
20
|
+
private shutdownPromise;
|
|
21
|
+
constructor(discoveryService: TemporalDiscoveryService, options: TemporalOptions, injectedConnection: NativeConnection | null);
|
|
22
|
+
onModuleInit(): Promise<void>;
|
|
23
|
+
onApplicationBootstrap(): Promise<void>;
|
|
24
|
+
onModuleDestroy(): Promise<void>;
|
|
25
|
+
private initializeMultipleWorkers;
|
|
26
|
+
private createWorkerFromDefinition;
|
|
27
|
+
registerWorker(workerDef: WorkerDefinition): Promise<CreateWorkerResult>;
|
|
28
|
+
getWorker(taskQueue: string): Worker | null;
|
|
29
|
+
getAllWorkers(): MultipleWorkersInfo;
|
|
30
|
+
getWorkerStatusByTaskQueue(taskQueue: string): WorkerStatus | null;
|
|
31
|
+
startWorkerByTaskQueue(taskQueue: string): Promise<void>;
|
|
32
|
+
stopWorkerByTaskQueue(taskQueue: string): Promise<void>;
|
|
33
|
+
getConnection(): NativeConnection | null;
|
|
34
|
+
private getWorkerStatusFromInstance;
|
|
35
|
+
private loadActivitiesForWorker;
|
|
36
|
+
private getWorkflowSourceFromDef;
|
|
37
|
+
startWorker(): Promise<void>;
|
|
38
|
+
private runWorkerWithAutoRestart;
|
|
39
|
+
private autoRestartWorker;
|
|
40
|
+
stopWorker(): Promise<void>;
|
|
41
|
+
shutdown(): Promise<void>;
|
|
42
|
+
restartWorker(): Promise<WorkerRestartResult>;
|
|
43
|
+
getWorkerStatus(): WorkerStatus;
|
|
44
|
+
getRegisteredActivities(): Record<string, Function>;
|
|
45
|
+
registerActivitiesFromDiscovery(): Promise<ActivityRegistrationResult>;
|
|
46
|
+
isWorkerAvailable(): boolean;
|
|
47
|
+
isWorkerRunning(): boolean;
|
|
48
|
+
getStatus(): WorkerStatus;
|
|
49
|
+
getHealthStatus(): WorkerHealthStatus;
|
|
50
|
+
getStats(): WorkerStats;
|
|
51
|
+
private validateConfiguration;
|
|
52
|
+
private getEnvironmentDefaults;
|
|
53
|
+
private buildWorkerOptions;
|
|
54
|
+
private createConnection;
|
|
55
|
+
private createWorker;
|
|
56
|
+
private logWorkerConfiguration;
|
|
57
|
+
private runWorkerLoop;
|
|
58
|
+
private startWorkerInBackground;
|
|
59
|
+
private shouldInitializeWorker;
|
|
60
|
+
private initializeWorker;
|
|
61
|
+
private loadActivitiesFromDiscovery;
|
|
62
|
+
private createWorkerConfig;
|
|
63
|
+
private shutdownWorker;
|
|
64
|
+
private performShutdown;
|
|
65
|
+
private getWorkflowSource;
|
|
66
|
+
private extractErrorMessage;
|
|
67
|
+
}
|