gpt4 book ai didi

node.js - Node redis,变量在客户端之间共享?

转载 作者:可可西里 更新时间:2023-11-01 11:35:56 25 4
gpt4 key购买 nike

node 的 redis 的异步特性让我很不舒服。

我看到当消息处理从一个客户端切换到另一个客户端时,我认为独立的变量看起来会被其他客户覆盖。

我不知道为什么变量在两个客户端之间共享。

var subscriber = redis.createClient(port, host);
var client = redis.createClient(port, host);
var requirejs = require('requirejs');


requirejs(['my-function'], function(myFunction) {

subscriber.subscribe('CHANNEL');

subscriber.on('message', function(channel, message) {
// If I do multiple jobs, say multiple db inserts
var data = JSON.parse(message);

var callback = function(result) {
client.publish(result);
};

myFunction(data, callback);

});
});

来自 client1 的数据与 client2 不同,但是当我记录它时,来自 client2 的数据被记录(有时并不总是)

define([
'module',
'text!my-script.js',
'script-fn',
], function(module, myScript, scriptFn) {

var myFunction = function(data, callback) {
// I pass data to functions taht use vm.createScript, and requirejs
// there I print data
console.log(data);
});
});

我使用 requirejs/vm ,它很复杂我在这里链接我之前的问题

node.js redis server, what happens when there are multiple messages to the subscribed channel?

最佳答案

我不太明白这个问题。

但在 myFunction 函数的末尾,您没有显式调用回调,因此无法调用 client.publish()。如果您运行此代码,我希望消息显示在控制台中,而无需在 Redis 客户端上发布任何内容。

关于node.js - Node redis,变量在客户端之间共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33954599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com