我有一个 memcached 状态,我想在其中保存一些东西。当一个节点连接到我的应用程序的拓扑时,我希望它能够将自己添加到该类型的连接节点列表中。我正在尝试通过嵌套查询来做到这一点:
mc_cli.connect(function() {
mc_cli.get( key, function(err, response) {
if(err.type == 'NOT_FOUND'){
//save myself
mc_cli.connect(function() {
mc_cli.add( GLOBAL_KEY, uid, { flags: 0, exptime: 0}, function(err, status) {
if (!err) {
console.log(status);
}
else {
console.log(err);
}
});
});
}
[...]
此代码属于else
以下错误:
{ type: 'CONNECTION_ERROR',
description: 'Lost connection to server.' }
基本上代码所做的是,由于没有人设置连接的 ID 数组,因此执行代码的第一个节点是负责执行此操作的节点。我没有显示以下代码,它只是获取 ID 列表并添加自己的。错误发生在显示的代码段中。现在,在库中打印此错误的代码如下:
try {
this.sock.write(command + crlf);
if (value) {
this.sock.write(value);
this.sock.write(crlf);
}
this.queue.enqueue({ handler: handler, callback: callback });
}
catch (x) {
callback({ type: 'CONNECTION_ERROR', description: 'Lost connection to server.' }, null);
}
这不是很有帮助,因为我不明白是什么原因造成的。我想知道我在做什么是错的。我正在使用一些我习惯于使用 mongoDB 的嵌套东西,但我不确定我是否可以对 memcached 做同样的事情,尤其是这个库。有没有人有关于如何解决这个问题的想法?谢谢。
编辑:我忘了添加我正在使用的库的链接:超频/mc