在nodejs工作进程中使用同步代码是否正确?

问题描述 投票:0回答:1

我有一个漫长而无聊的东西的redis队列,由我的主http服务器填充。然后,此队列由另一个我用作worker(heroku worker)的服务器缓慢处理。当此进程完成一个项目时,它会将结果保存到数据库中。

可以以同步方式编写我的nodejs工作进程吗?它确实对我有意义,因为无论如何它一次做一件事并且不必回答任何请求。

node.js web-worker
1个回答
0
投票

是的,您可以使用同步代码为Redis开发工作进程。因此,您希望为Redis主机和端口创建密钥文件:

module.exports = {
  redisHost: process.env.REDIS_HOST,
  redisPort: process.env.REDIS_PORT
};

因此,当您想要连接到redis时,您需要查找redis的主机名或URL以及您应该从环境变量连接的端口。

然后要求与redis一起:

const keys = require("./keys");
const redis = require("redis");

然后像这样创建你的redisClient

const redisClient = redis.createClient({
  host: keys.redisHost,
  port: keyof.redisPort,
  retry_strategy: () => 1000
});

retry_strategy:告诉工作人员,如果我们失去连接,请每秒重试连接一次。

© www.soinside.com 2019 - 2024. All rights reserved.