@ixily/activ
Version:
Alpha Capture Trade Idea Verification. Blockchain ownership proven trade ideas and strategies.
43 lines • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ParallelChunksModule = void 0;
const __1 = require("../../");
const state = {
taskChunks: new Map(),
runningPool: new Map(),
};
const defineTaskChunks = (taskId, taskChunks) => {
state.taskChunks.set(taskId, taskChunks);
state.runningPool.set(taskId, 0);
};
const run = async (taskId, task) => {
const taskChunks = state.taskChunks.get(taskId);
if (!taskChunks) {
throw new Error(`Task chunks not defined for task ${taskId}`);
}
if (state.runningPool.get(taskId) >= taskChunks) {
while (state.runningPool.get(taskId) >= taskChunks) {
await (0, __1.rest)(10);
}
return run(taskId, task);
}
else {
let result;
state.runningPool.set(taskId, state.runningPool.get(taskId) + 1);
try {
result = await task();
}
catch (err) {
throw err;
}
finally {
state.runningPool.set(taskId, state.runningPool.get(taskId) - 1);
}
return result;
}
};
exports.ParallelChunksModule = {
defineTaskChunks,
run,
};
//# sourceMappingURL=parallel-chunks.module.js.map