worker-tls
Version:
worker-tls 提供了 动态Worker 功能 和 其它一些 Worker 场景下有用的工具集;让开发者可以像调用对象方法一样动态地调用Worker中的方法,也可以随时地往 Worker 中动态地添加函数 等等。
76 lines • 3.12 kB
TypeScript
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