gpt4 book ai didi

javascript - 为什么创建和删除 Azure 表失败?

转载 作者:行者123 更新时间:2023-11-30 05:41:50 24 4
gpt4 key购买 nike

我想知道为什么当我尝试删除已存储实体的表时尝试运行以下测试套件会失败。我得到的错误如下

1) Azure Storage cloud storage operations "after all" hook: Error: The specified resource does not exist. RequestId:3745d709-fa5e-4a2b-b517-89edad3efdd2 Time:2013-12-03T22:26:39.5532356Z

如果我注释掉实际的数据插入,它每隔一段时间都会失败,如果我尝试插入数据,它每次都会失败,并附加“指定的表不存在。”。

对于第一种情况,这似乎表明表创建存在某种延迟,因此在所有其他测试中它都是成功的,而对于第二种情况,这似乎表明即使我的回调是在之后调用的表创建后,表仍未准备好插入数据。

测试套件和相关代码如下所示:

describe('cloud storage operations', function () {
var storage;

before(function (done) {
this.timeout(5000);
storage = AzureStorage.usingTable('TEST', done);
});

after(function (done) {
storage.deleteTable(done);
});

it('should store without trouble', function (done) {
storage.save(factory.createChangeSet()).then(done, done);
});
});

...//从 azure.js 中截取

  var AzureStorage = function (storageClient, tableName, callback) {
assert(storageClient && tableName && partitionKey, "Missing parameters");

this.storageClient = storageClient;
this.tableName = tableName;

var defaultCallback = function (err) { if (err) { throw error; } };

this.storageClient.createTableIfNotExists(this.tableName, function () {
callback();
} || defaultCallback);
};

AzureStorage.usingTable = function (tableName, callback) {
return new AzureStorage(
azure.createTableService(accountName, accountKey)
, tableName
, callback
);
};

AzureStorage.prototype.deleteTable = function (callback) {
this.storageClient.deleteTable(this.tableName, callback);
};

最佳答案

我也使用 c# 库遇到了这个问题,但我很确定错误消息表明无法创建表,因为同名表的操作仍在进行中。考虑到后端支持存储,它不会是即时的也是有道理的。需要从3个本地副本以及配对数据中心的副本中删除该表。

对于这种异步操作,要以足够快的速度构建和拆卸它们以进行测试将是一项挑战。

解决方法可能是增加附加到“TEST”表名称的值,该值对于该测试运行是唯一的。

关于javascript - 为什么创建和删除 Azure 表失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20363055/

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