如何修改以下内容以使并发写入失败(使用If-Match和ETag标头)?
let sync = Runtime.getSync();
exports.handler = function(context, event, callback) {
let map = sync.syncMaps("MyMap");
map.syncMapItems(event.Digits).fetch().then(item => {
map.syncMapItems(event.Digits).update({key: item.key, data:item.data + 1})
.then(item2 => {
}).catch(err => {
console.log("Update Error:" + err);
});
}).catch(err => {
console.log("Fetch Error:" + err);
});
}
答案 0 :(得分:1)
这里是Twilio开发人员的传播者。
The documentation on mutating data and protecting against conflicts in Twilio Sync确实提到您可以使用If-Match
和ETag
标头。
文档指出:
请注意,REST帮助器库中当前未启用If-Match标头支持。支持即将推出。
因此,如果您想使用If-Match
标头来确保您没有在Sync Map Item中写入冲突条目,那么您将需要自己构建HTTP请求。
the documentation for Sync Documents and If-Match
中的所有内容也适用于单个同步地图项目。
用于同步地图项的REST API的文档包括如何构建您自己发出请求所需的URL。
让我知道这是否有帮助,以及您自己提出请求时遇到任何麻烦。