- public getTaskWorkerUsage (name: string): WorkerUsage | undefined {
- if (!this.tasksUsage.has(name)) {
- this.tasksUsage.set(name, this.initTaskWorkerUsage(name))
+ public getTaskFunctionWorkerUsage (name: string): WorkerUsage | undefined {
+ if (!Array.isArray(this.info.taskFunctionsProperties)) {
+ throw new Error(
+ `Cannot get task function worker usage for task function name '${name}' when task function properties list is not yet defined`
+ )
+ }
+ if (
+ Array.isArray(this.info.taskFunctionsProperties) &&
+ this.info.taskFunctionsProperties.length < 3
+ ) {
+ throw new Error(
+ `Cannot get task function worker usage for task function name '${name}' when task function properties list has less than 3 elements`
+ )
+ }
+ if (name === DEFAULT_TASK_NAME) {
+ name = this.info.taskFunctionsProperties[1].name
+ }
+ if (!this.taskFunctionsUsage.has(name)) {
+ this.taskFunctionsUsage.set(name, this.initTaskFunctionWorkerUsage(name))
+ }
+ return this.taskFunctionsUsage.get(name)
+ }
+
+ /** @inheritdoc */
+ public deleteTaskFunctionWorkerUsage (name: string): boolean {
+ return this.taskFunctionsUsage.delete(name)
+ }
+
+ private closeMessageChannel (): void {
+ if (this.messageChannel != null) {
+ this.messageChannel.port1.unref()
+ this.messageChannel.port2.unref()
+ this.messageChannel.port1.close()
+ this.messageChannel.port2.close()
+ delete this.messageChannel