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

时间:2014-05-12 09:42:43

标签: node.js web-worker

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

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

1 个答案:

答案 0 :(得分: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:告诉工作人员,如果我们失去连接,请每秒重试一次。