如何处理多个node.js服务器中的串行异步任务

时间:2017-06-16 02:43:55

标签: javascript node.js multithreading asynchronous

我想在同一台机器上使用PM2在不同的Node.js服务器上以串行方式运行一个异步任务(一个脚本文件)。

例如,我有一个名为" SUM"它将两个数相加并在100毫秒内返回结果:

  • 从服务器C运行SUM与(1,4)在12:35:15.008
  • 从服务器A运行SUM与(2,5)在12:35:15.025
  • 从服务器A运行SUM,其中(7,2)为12:35:15.092
  • SUM的服务器C在12:35:15.108
  • 接收(5)
  • SUM的服务器A收到(7)12:35:15.208
  • SUM的服务器A在12:35:15.308
  • 接收(9)

任务SUM是从不同服务器串行运行的。

让我们说该实用程序的API是一个运行任务的函数,这个脚本可能是一个web工作者。

const serialAsyncMultiCore = require('xxx');

// Parameters: name of the task and script path
const sum = serialAsyncMultiCore.register('SUM', './sum.js');

sum.run([1, 4], function (err, res) {
  if (err) throw err;
  console.log(res);  // 5
});

我想我必须使用某些东西来维护进程的状态(例如数据库,可能在内存中,如Redis或文件),注册任务并监听结果({ {3}}?),以及类似服务器的内容,用于收听新任务并通知结果。

我怎样才能做到这一点?有图书馆吗?

0 个答案:

没有答案