Potential fix for GunDB taking a lot of time to complete .put

This commit is contained in:
emad-salah 2020-09-08 18:06:27 +01:00
parent c5e4de1619
commit 171b1f0b77

View file

@ -191,22 +191,44 @@ const listenerForAddr = (addr, SEA) => async (order, orderID) => {
const invoicePutStartTime = Date.now() const invoicePutStartTime = Date.now()
await new Promise((res, rej) => { // Calling .put on an object on GunDB seems
getUser() // to take a lot of time for some users
.get(Key.ORDER_TO_RESPONSE) await Promise.all([
.get(orderID) new Promise((res, rej) => {
.put(orderResponse, ack => { getUser()
if (ack.err && typeof ack.err !== 'number') { .get(Key.ORDER_TO_RESPONSE)
rej( .get(orderID)
new Error( .get('response')
`Error saving encrypted invoice to order to response usergraph: ${ack}` .put(orderResponse.response, ack => {
if (ack.err && typeof ack.err !== 'number') {
rej(
new Error(
`Error saving encrypted invoice to order to response usergraph: ${ack}`
)
) )
) } else {
} else { res()
res() }
} })
}) }),
}) await new Promise((res, rej) => {
getUser()
.get(Key.ORDER_TO_RESPONSE)
.get(orderID)
.get('type')
.put(orderResponse.type, ack => {
if (ack.err && typeof ack.err !== 'number') {
rej(
new Error(
`Error saving encrypted invoice to order to response usergraph: ${ack}`
)
)
} else {
res()
}
})
})
])
const invoicePutEndTime = Date.now() - invoicePutStartTime const invoicePutEndTime = Date.now() - invoicePutStartTime