convert to loop

Signed-off-by: blakeromano-il <blake.romano@imaginelearning.com>
This commit is contained in:
blakeromano-il
2022-05-16 12:54:10 -04:00
parent 07f65da22a
commit d3afb6983a
2 changed files with 52 additions and 41 deletions
@@ -40,31 +40,36 @@ export class LocalTaskWorker {
this.logger.info(
`Task worker starting: ${this.taskId}, ${JSON.stringify(settings)}`,
);
const success = false;
let attemptNum = 1;
(async () => {
try {
if (settings.initialDelayDuration) {
await this.sleep(
Duration.fromISO(settings.initialDelayDuration),
options?.signal,
while (!success) {
try {
if (settings.initialDelayDuration) {
await this.sleep(
Duration.fromISO(settings.initialDelayDuration),
options?.signal,
);
}
while (!options?.signal?.aborted) {
const startTime = process.hrtime();
await this.runOnce(settings, options?.signal);
const timeTaken = process.hrtime(startTime);
await this.waitUntilNext(
settings,
(timeTaken[0] + timeTaken[1] / 1e9) * 1000,
options?.signal,
);
}
this.logger.info(`Task worker finished: ${this.taskId}`);
break;
} catch (e) {
attemptNum += 1;
this.logger.warn(
`Task worker failed unexpectedly, attempt number ${attemptNum}, ${e}`,
);
}
while (!options?.signal?.aborted) {
const startTime = process.hrtime();
await this.runOnce(settings, options?.signal);
const timeTaken = process.hrtime(startTime);
await this.waitUntilNext(
settings,
(timeTaken[0] + timeTaken[1] / 1e9) * 1000,
options?.signal,
);
}
this.logger.info(`Task worker finished: ${this.taskId}`);
} catch (e) {
this.logger.warn(`Task worker failed unexpectedly, ${e}`);
this.start(settings, options)
}
})();
}
+25 -19
View File
@@ -51,29 +51,35 @@ export class TaskWorker {
this.logger.info(
`Task worker starting: ${this.taskId}, ${JSON.stringify(settings)}`,
);
const success = false;
let attemptNum = 1;
(async () => {
try {
if (settings.initialDelayDuration) {
await sleep(
Duration.fromISO(settings.initialDelayDuration),
options?.signal,
);
}
while (!options?.signal?.aborted) {
const runResult = await this.runOnce(options?.signal);
if (runResult.result === 'abort') {
break;
while (!success) {
try {
if (settings.initialDelayDuration) {
await sleep(
Duration.fromISO(settings.initialDelayDuration),
options?.signal,
);
}
await sleep(this.workCheckFrequency, options?.signal);
}
while (!options?.signal?.aborted) {
const runResult = await this.runOnce(options?.signal);
if (runResult.result === 'abort') {
break;
}
this.logger.info(`Task worker finished: ${this.taskId}`);
} catch (e) {
this.logger.warn(`Task worker failed unexpectedly, ${e}`);
this.start(settings, options)
await sleep(this.workCheckFrequency, options?.signal);
}
this.logger.info(`Task worker finished: ${this.taskId}`);
break;
} catch (e) {
attemptNum += 1;
this.logger.warn(
`Task worker failed unexpectedly, attempt number ${attemptNum}, ${e}`,
);
}
}
})();
}