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



我有一个redis队列的长而无聊的事情要做,得到填补我的主http服务器。然后,这个队列由另一个服务器缓慢地处理,我将它用作工作器(heroku worker)。当这个进程完成一个项目时,它将结果保存到数据库中。

是否可以以同步方式编码我的nodejs工作进程?这对我来说是有意义的,因为它每次只做一件事,不需要回答任何请求。

是的,你可以使用同步代码来开发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:告诉worker,如果我们失去连接,每秒重新连接一次。

相关内容

最新更新