如何使用nodeJs的childProcess重用Redis连接



如何在nodeJs中使用Childprocess.fork((创建的进程中重用redis连接?

例如,我会有一个redis-config.js文件,在其中创建RedisClient的实例并连接到redis服务器。因此,在那之后,我会有另一个文件,例如test.js,在这个文件test.js中,我会通过导入访问redis的实例,然后我可以在redis中插入一个键。但这并没有创建到redis服务器的另一个连接。

例如

redis-conf.js

const Redis = require('redis');
const redisClient = Redis.createClient({name:'test-conecction'});
module.exports = {redisClient:Object.freeze(redisClient)}

main.js

const cp = require('node:child_process');
const {redisClient} = require('./redis');
redisClient.connect().then(()=>{  <<=== this is want i want, this does not work, i want to connect only once.
const c1 = cp.fork('./child.js');
const c2 = cp.fork('./child.js');
})

child.js

const {redisClient} = require('./redis');
redisClient.info().then((data)=>{  <<== when i try this, nodeJs tells that the client is disconnected
console.log(data);
})

IN简历。这是不可能的。因为当nodeJ创建一个子Porcess时,会重新创建每个对象,并重新分配所有资源。

相关内容

  • 没有找到相关文章

最新更新