如何在servlt编程中实现重新初始化逻辑?

发布于 2025-01-02 16:33:15 字数 188 浏览 0 评论 0原文

我的servlet应用程序(java+tomcat)旨在提供在线城市ID-温度映射。映射规则是在 init() 函数中从磁盘上的文件加载的。但文件每天都会更新,所以我需要像 reload 或 reinit 函数那样将文件重新加载到内存中,这是标准 servlet 不提供的。 如何实施?谢谢!

My servlet applications (java+tomcat)aims to provide an online cityid-temperature mapping. The mapping rules is loaded from file on the disk in the init() function. But the file updates everyday, so I need something like reload or reinit function to reload the file into memory, which standard servlet does not provide.
How to implement? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尝蛊 2025-01-09 16:33:15

当您启动时,以某种方式保存文件的时间戳。经常将保存的时间戳与文件的时间戳进行比较。如果文件较新,则重新加载该文件。

您可以通过多种方式存储时间戳。例如,在应用程序上下文中缓存一个变量。或者,在启动时,创建一个包含当前时间的空文件,以便您知道上次加载该文件的时间。使用空文件的时间戳作为参考值,并在重新加载时重新创建空文件。

When you start up, save the timestamp of the file somehow. Every so often, compare the saved timestamp with that of the file. If the file is newer, then reload the file.

You could store the timestamp any number of ways. For example, cache a variable in the Application Context. Or, on startup, create an empty file that with the current time so you know when you last loaded the file. Use the empty file's timestamp as your reference value, and recreate the empty file when you reload.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文