У меня есть приложение узла, которое получает запрос на публикацию с несколькими объектами для добавления в базу данных, и для объекта должен произойти ряд вещей, которые включают API Dropbox.Для выполнения полного набора задач для объекта требуется около 0,5 секунды.Это означает, что если я отправлю массив из 30 объектов, это может занять 15 секунд.
Когда два клиента публикуют 30 объектов, их обработка будет перекрываться.У меня есть переменная в функции, где это происходит, которая хранит проблемы с обработкой каждого случая.Однако, когда запросы отправляются, и выполняющиеся перекрываются, ошибки обоих запросов отправляются в один и тот же массив issues
.Как заставить сервер вызывать две отдельные версии функции bulkAdd.
bulkAdd: async function (req, callback) {
issues = []
await req.reduce((promise, audit) => {
// return promise.then(_ => dropbox_functions.createFolder(audit.scanner_ui)
let globalData;
return promise.then(_ => this.add(audit)
.then((data)=> {globalData = data; return dropbox_functions.createFolder(data.ui, data)}, (error)=> {issues.push({audit: audit, error: 'There was an error adding this case to the database'}); console.log(error)})
.then((data)=>{console.log(data, globalData);return dropbox_functions.checkScannerFolderExists(audit.scanner_ui)},(error)=>{issues.push({audit: globalData, error: 'There was an error creating the case folder in dropbox'})})
.then((data)=>{return dropbox_functions.moveFolder(audit.scanner_ui, globalData.ui)},(error)=>{issues.push({audit: globalData, error: 'No data folder was found so an empty one was created'}); return dropbox_functions.createDataFolder(globalData.ui)})
.then(()=>console.log(issues))
);
}, Promise.resolve()).catch(error => {console.log(error)});
return(issues)
},