fix: retry failed setObject calls

v1.18.x
Barış Soner Uşaklı 5 years ago
parent d7b2f163f2
commit 2c9e865763

@ -15,6 +15,7 @@ module.exports = function (module) {
}
const writeData = helpers.serializeData(data);
try {
if (isArray) {
var bulk = module.client.collection('objects').initializeUnorderedBulkOp();
key.forEach(key => bulk.find({ _key: key }).upsert().updateOne({ $set: writeData }));
@ -22,6 +23,12 @@ module.exports = function (module) {
} else {
await module.client.collection('objects').updateOne({ _key: key }, { $set: writeData }, { upsert: true, w: 1 });
}
} catch (err) {
if (err && err.message.startsWith('E11000 duplicate key error')) {
return await module.setObject(key, data);
}
throw err;
}
cache.delObjectCache(key);
};

Loading…
Cancel
Save