我有一个漫长而无聊的东西的redis队列,由我的主http服务器填充。然后,此队列由另一个我用作worker(heroku worker)的服务器缓慢处理。当此过程完成一个项目时,它会将结果保存到数据库中。
以同步方式编写我的nodejs工作进程是否可以?它确实对我有意义,因为无论如何它一次只做一件事而且不必回答任何请求。
答案 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:
告诉工作人员,如果我们失去连接,请每秒重试一次。