扩展 JB Nizet\xe2\x80\xa6 的评论
\n以前接受的答案是一种黑客行为。如果目标是让一些常规任务作为 Web 应用程序的一部分执行,Java 提供了一套灵活的技术来实现这一目标。
\nServletContextListener第一个是 Servlet 规范定义的挂钩,用于在部署 Web 应用程序和关闭 Web 应用程序时调用代码。这个钩子就是ServletContextListener。
\nScheduledExecutorService第二部分是添加到最新版本的 Java 中的执行器服务,作为旧 Timer 类的更复杂的替代品。特别是您需要ScheduledExecutorService。
\n因此,当您的 Web 应用程序启动时,ServletContextListener 会启动 ScheduledExecutorService。当 ServletContextListener 收到关闭通知时,它会告诉执行器正常退出。
\n一个技巧是:确保捕获执行器中的所有异常。如果异常泄漏,执行器会默默地停止执行。这是一个功能而不是一个错误。阅读文档并通过谷歌搜索进行学习。
\n一些 Servlet 容器支持Jakarta Concurrency。该规范提供了上面讨论的执行器服务的自动管理。
\n| 归档时间: |
|
| 查看次数: |
9029 次 |
| 最近记录: |