我正在编写一个调度程序,它可以获取 XML 数据并将其插入 MySQL DB - 并不简单。但我试图找到的问题或逻辑就在这里。 注意:我想在 Windows 环境中执行此操作,将来可能会为其他平台进行配置。
- 调度程序应每 5 分钟运行一次。
- 此脚本应获取有关从 XML 解析和收集数据字段的条件/配置,并且这些条件可从 MySQL 表中获取。
- 此表还定义了一个延迟,在此脚本应检查 XML 字段和延迟中的差异。
- 此脚本执行两项操作,每 5 分钟运行一个脚本来收集 XML 并检查表 (MySQL) 中每个所述延迟的差异。
- 然后,该脚本读取 XML 数据字段并对其进行解析,然后仅收集从上述 MySQL 表中定义的数据字段。
- 只有当状态发生变化时,收集的数据才会插入MySQL DB,并且该状态是从MySQL表中定义的。
反馈/建议:
- 由于延迟,我不确定应该如何将配置存储在将在每个计划之间共享的脚本中。
- 是否可以在代码中使用
static
变量来存储这些数据?哪些将由不同的工作共享?或者不同的时间表? - 基本上,我应该如何实现这个?就性能而言,这是一种更好的方法。
感谢您的宝贵时间。
更新:
其中一个建议是使用 Java 代码作为 Windows 服务(?)我们可以在不同的作业之间共享一些通用数据吗? - 这有道理吗?
最佳答案
并发就是答案,尝试创建线程池或执行器服务,并停止某些线程 5 分钟,如果很少有线程使用相同的资源,您甚至可以使用同步。 请记住,并不总是使用的线程越多,完成工作的速度就越快。 3 个线程 - 2 分钟 5线程-6分钟
*阅读有关线程的教程
*创建几个简单线程并等待 5 分钟
*阅读一些有关线程池/同步和共享资源的教程(脚本部分) *测试找到最佳方法
关于java - 如何在计划作业之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7722699/