node.js - 如何让我的 Node.js 应用程序集群化以仅运行一次任务?

标签 node.js http insert cluster-computing worker

我正在为我的 Node.js 应用程序使用集群。请参阅:https://nodejs.org/api/cluster.html

出于多种原因,这非常有用,但现在我面临挑战。我想向我的应用程序添加一个功能,该功能将 HTTP 请求发送到另一台服务器,然后获取响应、提取数据并将其保存在 MySQL 数据库中。

我遇到的问题是此功能将重复项插入我的数据库,因为它多次运行 HTTP 请求(一个用于我集群中的每个工作人员)。

当我的集群中有 4 个 worker 时,我如何才能只运行一次这个过程??

最佳答案

var events = require("events");
var emitter = new events.EventEmitter();
var author = "Slim Shady";
var title = "The real Slim Shady";

//an event listener
emitter.once("addAuthorTitle", function(author, title) {
  console.log("Added Author and Title " + author + " - " + title);
});
//add record to db
// then emit an event
emitter.emit("addAuthorTitle", author, title);
emitter.emit("addAuthorTitle", author, title);

即使由于集群会发出 4 次,但函数只会执行一次

关于node.js - 如何让我的 Node.js 应用程序集群化以仅运行一次任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55034691/

相关文章:

php - Mysql批量插入不插入所有数据

php - 无法在php中使用mysql查询插入数据

node.js - API 未根据 lambda 授权方的响应调用 lambda 并返回空消息

javascript - 突破node.js then()s

node.js - promise 链未按预期顺序执行 - Node.js

javascript - 重定向到包含原始帖子数据的 URL

mysql - 使用 ENUM 字段复制 mysql 表

javascript - 如何使用 npm mp3 转成 wav

php - Laravel 产品,CORS 编号 'Access-Control-Allow-Origin' header

java - Resttemplate在接收响应之前如何确定响应的状态码?