4.5.1 • Published 2 months ago
qiao-parallel v4.5.1
qiao-parallel
nodejs 下并行执行任务,详见:一篇文章了解 JS 并行任务
install
安装
npm i qiao-parallel
use
使用
// cjs
const { parallelByIIFE, parallelByFork, parallelByWorker } = require('qiao-parallel');
// mjs
import { parallelByIIFE, parallelByFork, parallelByWorker } from 'qiao-parallel';
code
示例代码
values
并行任务池
module.exports = [100, 300, 200, 400];
callback
单个任务完成回调
// q
const q = require('qiao-console');
/**
* callback
* @param {*} index
* @param {*} res
*/
module.exports = function (index, res) {
q.writeLine(index, `${index} ${res}`);
};
complete
所有任务完成回调
// q
const q = require('qiao-console');
/**
* complete
* @param {*} l
*/
module.exports = function (l) {
q.writeLine(l, 'complete');
};
handler
模拟任务代码
/**
* handler
* @param {*} timeout
* @returns
*/
module.exports = function (timeout) {
return new Promise(function (resolve) {
setTimeout(() => {
return resolve(timeout);
}, timeout);
});
};
handler fork js
模拟任务代码-fork 模式
// handler
const handler = require('./_handler.js');
// fork handler
async function forkHandler() {
// check
if (!process || !process.argv) return;
// value
const value = parseInt(process.argv[2]);
// msg
const msg = await handler(value);
process.send(msg);
}
forkHandler();
api
parallel by IIFE
// q
const q = require('qiao-console');
// vars
const values = require('./_values.js');
const handler = require('./_handler.js');
const callback = require('./_callback.js');
const complete = require('./_complete.js');
// parallel
const parallel = require('../index.js');
// test
(function () {
q.clear();
parallel.parallelByIIFE(handler, values, callback, complete);
})();
parallel by fork
// q
const q = require('qiao-console');
// vars
const values = require('./_values.js');
const callback = require('./_callback.js');
const complete = require('./_complete.js');
// parallel
const parallel = require('../index.js');
// test
(function () {
q.clear();
const jsPath = require('path').resolve(__dirname, './fork-handler.js');
parallel.parallelByFork(jsPath, values, callback, complete);
})();
parallel by worker
// q
const q = require('qiao-console');
// vars
const values = require('./_values.js');
const callback = require('./_callback.js');
const complete = require('./_complete.js');
// parallel
const parallel = require('../index.js');
// test
(function () {
q.clear();
const jsPath = require('path').resolve(__dirname, './worker-handler.js');
parallel.parallelByWorker(jsPath, values, callback, complete);
})();
4.5.1
2 months ago
4.4.2
3 months ago
4.2.6
6 months ago
4.0.0
7 months ago
4.3.0
6 months ago
4.1.1
7 months ago
3.4.7
8 months ago
3.2.7
1 year ago
3.3.0
12 months ago
3.1.2
1 year ago
3.1.5
1 year ago
3.1.4
1 year ago
1.1.1
1 year ago
1.1.0
1 year ago
3.1.1
1 year ago
3.0.0
1 year ago
1.0.9
1 year ago
1.0.8
1 year ago
1.0.7
1 year ago
1.0.6
2 years ago
1.0.5
2 years ago
1.0.4
2 years ago
1.0.3
2 years ago
1.0.2
2 years ago
1.0.1
2 years ago
1.0.0
2 years ago
0.0.7
2 years ago
0.0.6
2 years ago
0.0.5
2 years ago
0.0.4
2 years ago
0.0.3
2 years ago
0.0.2
2 years ago