import { WorkerClient, type DWorker } from "./WorkerClient"; import type { IWorkerCodes } from "./createWorkerURL"; import type { Optional, AnyFunction } from "type-tls"; import { type DynamicWorkerOptions } from "./DynamicWorker"; import { SortQueue } from "./SortQueue"; import { Exec, ExecRecord } from "./dynamicWorkerAPI"; /** * worker 优先级比较器 * @remarks * 按照 executingCount 的从小到大排列 * @param a * @param b */ export declare function workerPriorityComparator(a: DWorker, b: DWorker): number; /** * 动态Worker池 */ export declare class DynamicWorkerPool extends WorkerClient { /** * * @param workerNum - Worker池 中 workder 的个数 * @param codeOrUrl - code 选项 或 url * @param workerOptions - Worker 相关的选项 */ constructor(workerNum: number, codeOrUrl?: Optional, workerOptions?: Optional>); /** * Worker 队列 */ readonly queue: SortQueue>; get worker(): DWorker; get executingCount(): number; execStarted(worker: DWorker, execRec: ExecRecord): void; execEnded(worker: DWorker): void; /** * 在指定 worker 中的执行命令 * * @remarks * 当 worker 中成功执行,且 this 上没有对应的成员时,则会自动新增对应的成员方法 * * @param exec - 命令信息 * @param transfer - 传递给 Worker 的可传递对象。这些对象的所有权将被转移给 Worker,而发当前环境将不再保有所有权。 * @returns */ execCMDOnWorker(worker: DWorker, exec: Exec, transfer?: Transferable[]): Promise; /** * 在所有 worker 中的执行命令 * * @remarks * 当 worker 中成功执行,且 this 上没有对应的成员时,则会自动新增对应的成员方法 * * @param exec - 命令信息 * @param transfer - 传递给 Worker 的可传递对象。这些对象的所有权将被转移给 Worker,而发当前环境将不再保有所有权。 * @returns */ allExecCMD(exec: Exec, transfer?: Transferable[]): Promise; /** * 设置命令 * @remarks * 会在Worker中添加一条命令,并且也会在实例自身上添加一个快捷命令(快捷方法 或 快捷属性) * * @param cmd * @param name - 命令的命名;默认会取 `cmd.name` 作为名字;当 cmd 是字符串时,name 是必须的 * @param isProperty - 添加到实例自身的快捷命令是否作为属性;如果是 true,则会在实例自身上生成快捷属性 * @returns */ setCMD(cmd: string | AnyFunction, name?: Optional, isProperty?: Optional): Promise; /** * 移除命令 * @remarks * 会将 Worker 中的命令 和 自己实例上的对应快捷方法都给移除 * @param name * @returns */ removeCMD(name: string): Promise; } //# sourceMappingURL=DynamicWorkerPool.d.ts.map