我正在努力改善我们API路由之一的响应时间。
我们提出了几个将消息发布到消息队列的请求,目前我们await
是网络请求。
const someMiddlewareFunction = async (ctx, next) => {
...
await postThingToQueue(message_payload)
...
ctx.body = {...}
return next()
}
如果我们不关心消息是否发送到队列,那么不await
不使用postThingToQueue
函数会有什么弊端? (只是说我们真的不在乎,已经采取了适当的错误处理措施)
答案 0 :(得分:1)
如何工作完全取决于您。如果您希望完成中间件,并且Express可以继续处理此特定请求的其他请求处理程序,而无需等待异步操作完成,并且您还有其他可以处理问题的错误处理,则没有任何缺点。有时将其称为“即发即弃”的异步操作。这不是通常的方法,但是在某些情况下当然是合适的。
如果您具有适当的错误处理方案,并且不需要请求本身等待排队操作,那么这很好。没有缺点。实际上,可能存在上行空间,因为请求不会被排队操作阻止,因此可以更快地处理请求。