Мне нужно вызвать службу oData для операции HTTP POST. В настоящее время я отправляю их партиями по 1000 штук, вызывая все партии за раз. Но есть проблема из-за одновременных пакетов, когда таблица блокируется. Поэтому я хотел бы отправить, используя $ batch с набором изменений. Но я не уверен, как вызвать службу Odata с помощью Changeset in Node.
Текущий код для пакетов.
const parallel = async(headers, input) => {
let payload = [],
items = [],
header ;
const sendreq = async (headers, request, i) => {
//sending request
}
for (var i = 0, len = input.ITEM.length; i < len; i += 1000) {
items.push(input.ITEM.slice(i, i + 1000));
}
for (i = 0; i < items.length; i++) {
header.ITEM= items[i];
payload.push(header)
header = {}
}
let j = 0;
const batches = Array(Math.ceil(input.ITEM.length / 1000)).fill(Array(1).fill(sendreq))
for (const batch of batches) {
await Promise.all(batch.map(f => f(headers, payload, j++)))
}
}