Node.js 中如何真正的 Graceful shutdown
发布于 5 小时前 作者 cheeeeetah 66 次浏览 来自 问答
const Koa = require('koa')
const sleep = require('sleep-promise')

const app = new Koa()

async function asyncWork() {
  await sleep(10000)
  console.log('Done async work')
}

app.use(async ctx => {
  console.log('got request')
  asyncWork().catch(console.error)
  ctx.body = 'Hello World'
})

app.listen(3000)

当停掉这个 server 时(SIGTERM 或 SIGINT),不管 asyncWork 有没有完成, node 进程都会立刻退出,如何等待 asyncWork 完成再退出?

注意:asyncWork 是特意没有 await 的,有 await 的情况我知道如何 graceful shutdown

回到顶部