【发布时间】:2016-03-01 11:47:43
【问题描述】:
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);
});
});
来自客户端 1 的数据与客户端 2 不同,但是当我记录它时,来自客户端 2 的数据会被记录(有时并非总是如此)
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?
【问题讨论】: