必须定期调用servlet。(例如andorid中的服务概念)
这个怎么做。使用计时器或其他解决方案?
提前致谢。
扩展JB Nizet的评论…
在以前接受的答案是怎样的一个黑客。如果目标是将一些常规任务作为您的Web应用程序的一部分执行,则Java提供了一些巧妙的技术来实现这一目标。
ServletContextListener
第一个是Servlet规范定义的挂钩,用于在部署Web应用程序和关闭Web应用程序时调用代码。这个钩子是ServletContextListener。
ScheduledExecutorService
第二部分是添加到Java的最新版本中的executor服务,它是旧Timer类的更复杂的替代品。特别是您需要ScheduledExecutorService。
因此,当您的Web应用程序启动时,ServletContextListener将启动ScheduledExecutorService。当ServletContextListener通知关闭时,它告诉执行程序正常退出。
一个技巧:确保在执行程序中捕获 所有 异常。如果有异常泄漏,则执行程序将静默停止执行。这是一个功能,而不是错误。阅读文档并进行一些谷歌搜索。