Wednesday 11 October 2017

How to make a Singleton promise on an Express server?

The processOrders() can take a very long time to complete, but then lives for 300 seconds after it is done. How can I ensure that n users hitting my endpoint aren't queuing up n promises and all wait on the same promise?I'm getting frustrated that I can't find the answer and am starting to lean towards a Cron job that just saves GOOD_ORDERS to S3 and be done with it. Can anyone help?let GOOD_ORDERS = { expires: moment().subtract(10, 'seconds').utc().format() } const pendingOrders = () => { return processOrders() .then(data => { GOOD_ORDERS = data return }) } app.get('/', (req, res) => { if(moment().isAfter(GOOD_ORDERS.expires)) { pendingOrders() .then(() => res.send(GOOD_ORDERS)) .catch(err => res.send(err)) } else { res.send(GOOD_ORDERS) } })

Submitted October 11, 2017 at 02:06PM by __woah_man

No comments:

Post a Comment