围绕Web工作者的包装器,允许为给定工作者安排任务,通过承诺异步返回结果。只有在计划任务后,才能构造工作进程。
new TaskProcessor(workerName, maximumActiveTasks)
Parameters:
workerName
(String)
工人的姓名。这应该是Workers文件夹中的脚本。
maximumActiveTasks
(Number)
(default 5
)
活动任务的最大数目。一旦超过,scheduleTask将不再对任何任务进行排队,从而允许在将来的帧中重新安排工作。
Methods
destroy()
通过配置向Web工作者发送消息,以异步初始化加载和编译Web程序集模块,以及在不支持Web程序集时使用的可选回退javascript模块。
Parameters:
webAssemblyOptions
(Object)
一个
Name | Description |
---|---|
webAssemblyOptions.modulePath
String
|
Web程序集javascript包装模块的路径。 |
webAssemblyOptions.wasmBinaryFile
String
|
Web程序集二进制文件的路径。 |
webAssemblyOptions.fallbackModulePath
String
|
如果不支持Web程序集,则使用的回退javascript模块的路径。 |
安排Web工作者异步处理的任务。如果当前有比构造函数设置的最大值更多的活动任务,将立即返回未定义。否则,返回一个承诺,该承诺将解析为工作人员在完成时返回的结果。
Parameters:
parameters
(Object)
将发布到工人的任何输入数据。
transferableObjects
(Array.<Object>)
包含在参数中的对象数组,应将其传输到工作进程,而不是复制。
Example
var taskProcessor = new bmgl.TaskProcessor('myWorkerName');
var promise = taskProcessor.scheduleTask({
someParameter : true,
another : 'hello'
});
if (!bmgl.defined(promise)) {
// too many active tasks - try again later
} else {
bmgl.when(promise, function(result) {
// use the result of the task
});
}