UNPKG

worker-tls

Version:

worker-tls 提供了 动态Worker 功能 和 其它一些 Worker 场景下有用的工具集;让开发者可以像调用对象方法一样动态地调用Worker中的方法,也可以随时地往 Worker 中动态地添加函数 等等。

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