在java中检查新xml文件的最佳方法
我正在编写一个程序,解析包含城市旅游景点的xml文件。每个城市都有自己的xml,节点有成本、地址等信息。。。我希望在计时器上有一个线程来检查特定目录中的新xml文件或现有xml文件的最新版本。创建线程不是问题所在。我只是不知道检查这些新文件或更改文件的最佳方法是什么。有没有人对一个简单的方法有什么建议。我在考虑为每个处理过的文件创建一个csv文件,其中包含名称和日期更改信息,然后在检查新的或更改过的xml时检查此csv文件,但这似乎过于复杂,我希望有更好的解决方案。在这一点上,我没有代码可以提供这个机制,我只是在寻找一个方向。在java中检查新xml文件的最佳方法,java,xml,multithreading,file,jdbc,Java,Xml,Multithreading,File,Jdbc,我正在编写一个程序,解析包含城市旅游景点的xml文件。每个城市都有自己的xml,节点有成本、地址等信息。。。我希望在计时器上有一个线程来检查特定目录中的新xml文件或现有xml文件的最新版本。创建线程不是问题所在。我只是不知道检查这些新文件或更改文件的最佳方法是什么。有没有人对一个简单的方法有什么建议。我在考虑为每个处理过的文件创建一个csv文件,其中包含名称和日期更改信息,然后在检查新的或更改过的xml时检查此csv文件,但这似乎过于复杂,我希望有更好的解决方案。在这一点上,我没有代码可以提供
我的想法是,当我得到适合不同城市模式的xml时,它将在下次程序运行时自动更新我的数据库,或者在已经运行的情况下定期更新我的数据库 为了避免轮询,您应该监视包含xml文件的目录。Oracle在上有大量关于该主题的文档,为了避免轮询,您应该查看包含xml文件的目录。Oracle在中提供了大量关于该主题的文档,您所描述的内容看起来像是新信息的异步传送。这种问题的一个常见陷阱是争用条件:如果您试图在文件被修改时读取该文件,或者如果您在读取该文件时其他人试图写入该文件,会发生什么情况?如果你的应用程序(或编辑XML文件的应用程序)在处理过程中中断会发生什么?为了避免此类问题,您应该移动文件(更改名称或目录)以跟随其状态,因为移动是普通文件系统上的原子操作。如果您想要防弹解决方案,您应该具备:
- 由外部部件编辑或传输的文件
- 正在完全编辑或传输的文件,可供应用程序读取
- 正在处理的文件
- 已完全处理的文件
- 包含错误的文件(试图处理错误,但无法完成处理)
- 如果在编辑传输xml文件时出现任何问题,则外部应用程序只需重新启动其操作
- 如果一个文件不能被处理(语法错误,过大,…),它将被分开进行进一步分析,但不会阻止处理其他文件
- 您只需查看几乎为空的目录 如果你的应用程序在处理文件时中断,在下一个开始,它可以重新启动它的处理。
- 由外部部件编辑或传输的文件
- 正在完全编辑或传输的文件,可供应用程序读取
- 正在处理的文件
- 已完全处理的文件
- 包含错误的文件(试图处理错误,但无法完成处理)
- 如果在编辑传输xml文件时出现任何问题,则外部应用程序只需重新启动其操作
- 如果一个文件不能被处理(语法错误,过大,…),它将被分开进行进一步分析,但不会阻止处理其他文件
- 您只需查看几乎为空的目录 如果你的应用程序在处理文件时中断,在下一个开始,它可以重新启动它的处理。
- 您所描述的内容看起来像是新信息的异步传送。这种问题的一个常见陷阱是争用条件:如果您试图在文件被修改时读取该文件,或者如果您在读取该文件时其他人试图写入该文件,会发生什么情况?如果你的应用程序(或编辑XML文件的应用程序)在处理过程中中断会发生什么?为了避免此类问题,您应该移动文件(更改名称或目录)以跟随其状态,因为移动是普通文件系统上的原子操作。如果您想要防弹解决方案,您应该具备: