Articles of web worker

将Nodejs模块加载到Web Worker中

我打算在我的Node.js应用程序中使用web worker来执行一些并发任务。 然而,由于'webworker-threads'模块遵循HTML5 web worker的实现,因此在web worker内部需要使用像require("fs")这样的Nodejs模块不起作用。 importScripts()可以加载js文件,但我想在web工作者内部的一个function,以便我可以require安装npm模块。 有没有解决方法?

在NodeJS中处理长时间运行的进程?

我已经看到一些较旧的post涉及这个主题,但我想知道当前,现代的方法是什么。 这个用例是:(1)假设你想在一个video文件上做一个长时间运行的任务,比如60秒 ,说jspm install可能需要60秒。 (2)你不能细分任务。 其他要求包括: 需要知道任务何时完成 很高兴能够停止正在运行的任务 稳定性:如果一个任务死亡,它不会closures服务器 需要能够处理100个同时请求 我见过这些解决scheme: nodejssubprocess webworkers 光纤 – 不用于CPU绑定的任务 生成器 – 不用于CPU绑定的任务 https://adambom.github.io/parallel.js/ https://github.com/xk/node-threads-a-gogo 任何其他? 现代的,基于标准的方法是什么? 而且,如果nodejs不适合这种types的任务,那么这也是一个有效的答案。

在WebWorker(NWJS)中不能要求节点模块

我正在尝试做一些我认为很简单的事情。 我正在使用nwjs(以前称为Node-Webkit),如果您不知道,基本上意味着我正在开发一个使用Chromium&Node的桌面应用程序,其中DOM与Node的范围相同。 我想将工作卸载到webworker,以便在将文本发送到Ivona Cloud(使用ivona-node)文本到语音API时,GUI不会挂起。 audio在生成时会以块的forms返回,并被写入MP3。 ivona-node使用fs将mp3写入驱动器。 我得到它在dom工作,但webworkers需要不挂用户界面。 所以我有两个节点模块,我需要在webworker,ivona-node和fs中使用。 问题是在webworker中你不能使用require。 所以我试着用browserify打包ivona-node和fs(这里有一个名为browserify-fs的包,我用这个包),用importScripts()replacerequire。 现在我得到节点模块中的var错误。 注意:我不认为native_fs_的方法会将mp3写入磁盘(stream),因为它应该是这样,我也得到了Ivona包中的错误(实际上是最重要的)不知道如何解决。 我包括所有信息来重现这一点。 这是我在控制台中得到的错误:未捕获的SyntaxError:意外的令牌var VM39 ivonabundle.js:23132 在NWJS中重现的步骤: npm安装ivona-node npm安装browserify-fs npm install -g browserify 现在,我浏览了针对browserify-fs的ivona-node和index.js的main.js: browserify main.js> ivonabundle.js browserify index.js> fsbundle.js 的package.json … { "name": "appname", "description": "appdescr", "title": "apptitle", "main": "index.html", "window": { "toolbar": true, "resizable": false, "width": 800, "height": 500 }, "webkit": { "plugin": […]

Webworker线程:是否可以使用内部工人“要求”?

(使用Sails.js) 我正在为Node上长时间运行的进程testingwebworker-threads( https://www.npmjs.com/package/webworker-threads ),下面的例子看起来不错: var Worker = require('webworker-threads').Worker; var fibo = new Worker(function() { function fibo (n) { return n > 1 ? fibo(n – 1) + fibo(n – 2) : 1; } this.onmessage = function (event) { try{ postMessage(fibo(event.data)); }catch (e){ console.log(e); } } }); fibo.onmessage = function (event) { //my return callback }; […]