schedule(taskConfiguration) { const dependencies = this._mapDependencies(taskConfiguration.dependencies); const priority = this._calculatePriority(dependencies); const task = { id: TaskScheduler._taskIdCounter++, priority, configuration: taskConfiguration, context: this._context, }; this._queue.push(task); const id = { id: task.id }; this._taskIds.set(id, task); return id; }
finalize() { const tasks = this._queue.toArray(); this._queue.clear(); this._taskIds.clear(); return tasks; }