在 nodejs 中设置超时触发器的最佳方式是什么?例如,如果在特定时间内没有司机接受,我想取消订单

What is the best way to have timeout triggers in nodejs ? for example I want to cancel order if no drivers accepts in certain time

我正在构建一个类似于优步的应用程序,所以我想要超时回调,当有新请求进入时,我想跟踪订单并在一段时间后如果没有司机接受订单则取消订单。我现在打算在 nodejs 中使用 setTimeout,有没有更好的方法来做到这一点?

所以我认为正确的解决方案是:

  1. 接受请求。
  2. 将其存储在数据库中,状态为 pending
  3. return 对客户端的响应。
  4. 在另一个进程或工作进程中搜索数据库中的请求并将它们分派给驱动程序,如果任何驱动程序接受该请求,则更改状态accepted
  5. 与此同时,您需要有另一个端点到 return 作业状态等,客户端使用它来检查作业状态,比方说 1 分钟,并每 2 秒提取一次结果。
  6. 在工作人员内部,如果他们通过了阈值,只需将请求更新为状态 canceled