如何以指定的时间间隔自动定期调用 servlet

Ami*_*ohn 2 java api jsp servlets timer

必须定期调用servlet。(就像andorid中的服务概念)

这个怎么做。使用计时器或任何其他解决方案?

提前致谢。

Bas*_*que 5

扩展 JB Nizet\xe2\x80\xa6 的评论

\n

以前接受的答案是一种黑客行为。如果目标是让一些常规任务作为 Web 应用程序的一部分执行,Java 提供了一套灵活的技术来实现这一目标。

\n

ServletContextListener

\n

第一个是 Servlet 规范定义的挂钩,用于在部署 Web 应用程序和关闭 Web 应用程序时调用代码。这个钩子就是ServletContextListener。

\n

ScheduledExecutorService

\n

第二部分是添加到最新版本的 Java 中的执行器服务,作为旧 Timer 类的更复杂的替代品。特别是您需要ScheduledExecutorService。

\n

因此,当您的 Web 应用程序启动时,ServletContextListener 会启动 ScheduledExecutorService。当 ServletContextListener 收到关闭通知时,它会告诉执行器正常退出。

\n

一个技巧是:确保捕获执行器中的所有异常。如果异常泄漏,执行器会默默地停止执行。这是一个功能而不是一个错误。阅读文档并通过谷歌搜索进行学习。

\n

雅加达并发

\n

一些 Servlet 容器支持Jakarta Concurrency。该规范提供了上面讨论的执行器服务的自动管理。

\n