我正在学习 node.js,我能找到的大多数示例都是处理简单示例。我更感兴趣的是构建真实世界的复杂系统,并估计基于事件的 node.js 模型如何处理真实应用程序的所有用例。
我想应用的一种常见模式是,如果在特定超时时间内没有发生阻塞执行,则让其超时。例如,如果执行数据库查询需要超过 30 秒,那么对于某些应用程序来说可能太多了。或者如果读取文件需要超过 10 秒。
对我来说,带有超时的理想程序流类似于带有异常的程序流。如果某个事件未在某个预定义的超时限制内发生,则事件侦听器将从事件循环中清除,并改为生成超时事件。此超时事件将有一个备用侦听器。如果事件处理正常,那么超时监听器和事件监听器都会从事件循环中清除。
是否有用于超时处理和清理超时进程的通用机制?我知道某些类型(例如套接字)具有超时参数,但它不是适用于所有事件的通用机制。