Prevent unnecessary order re-processing
This commit is contained in:
parent
6d83455712
commit
c7fd922b50
1 changed files with 28 additions and 2 deletions
|
|
@ -94,6 +94,11 @@ const listenerForAddr = (addr, SEA) => async (order, orderID) => {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Was recycled
|
||||||
|
if (order === null) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (!Schema.isOrder(order)) {
|
if (!Schema.isOrder(order)) {
|
||||||
logger.info(
|
logger.info(
|
||||||
orderID,
|
orderID,
|
||||||
|
|
@ -112,17 +117,25 @@ const listenerForAddr = (addr, SEA) => async (order, orderID) => {
|
||||||
|
|
||||||
ordersProcessed.add(orderID)
|
ordersProcessed.add(orderID)
|
||||||
|
|
||||||
|
if (Date.now() - order.timestamp > 66000) {
|
||||||
|
logger.info('Not processing old order', orderID)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.info('processing order ', orderID)
|
||||||
|
|
||||||
const alreadyAnswered = await getUser()
|
const alreadyAnswered = await getUser()
|
||||||
.get(Key.ORDER_TO_RESPONSE)
|
.get(Key.ORDER_TO_RESPONSE)
|
||||||
.get(orderID)
|
.get(orderID)
|
||||||
.then()
|
.then()
|
||||||
|
|
||||||
logger.info(orderID, 'alreadyAnswered', !!alreadyAnswered)
|
|
||||||
|
|
||||||
if (alreadyAnswered) {
|
if (alreadyAnswered) {
|
||||||
|
logger.info(orderID, 'alreadyAnswered')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logger.info(orderID, ' was not answered, will now answer')
|
||||||
|
|
||||||
const senderEpub = await Utils.pubToEpub(order.from)
|
const senderEpub = await Utils.pubToEpub(order.from)
|
||||||
const secret = await SEA.secret(senderEpub, getUser()._.sea)
|
const secret = await SEA.secret(senderEpub, getUser()._.sea)
|
||||||
|
|
||||||
|
|
@ -560,6 +573,14 @@ const listenerForAddr = (addr, SEA) => async (order, orderID) => {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
} finally {
|
||||||
|
// Recycle
|
||||||
|
require('../../Mediator')
|
||||||
|
.getGun()
|
||||||
|
.get('orderNodes')
|
||||||
|
.get(addr)
|
||||||
|
.get(orderID)
|
||||||
|
.put(null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -583,6 +604,11 @@ const onOrders = (user, gun, SEA) => {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (currentOrderAddr === addr) {
|
||||||
|
// Already subscribed
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
currentOrderAddr = addr
|
currentOrderAddr = addr
|
||||||
logger.info(`listening to address: ${addr}`)
|
logger.info(`listening to address: ${addr}`)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue