如何在预定作业之间共享数据

时间:2011-10-11 07:30:13

标签: java windows quartz-scheduler

我正在编写一个抓取XML数据并插入MySQL DB的调度程序 - 简单的不是。但是我想要找到的问题或逻辑就在这里。 注意:我希望将来在Windows环境中执行此功能,可能会为其他平台配置。

  1. 计划程序应每隔5分钟运行一次。
  2. 此脚本应该获取有关解析和从XML收集数据字段的条件/配置,这些条件可从MySQL表中获得。
  3. 此表还定义了此脚本应检查XML字段和差异的差异的延迟。延迟。
  4. 这个脚本同时执行这两个操作,每隔5分钟运行一次以收集XML并检查表(MySQL)中每个所述延迟的差异。
  5. 然后,此脚本读取XML数据字段并对其进行解析,然后仅收集从上述MySQL表中定义的那些数据字段。
  6. 只有当状态发生变化时才会将收集到的数据插入到MySQL DB中,并且这个状态是从MySQL表中定义的。
  7. 意见/建议:

    1. 由于延迟,我不知道应该如何在每个日程表之间共享的脚本中存储配置。
    2. 无论如何在代码中使用static变量来存储这些数据?哪些将与不同的工作共享?或不同的时间表?
    3. 基本上,我该如何实现呢?在性能方面更好的方法。
    4. 感谢您的时间。

      更新

      其中一个建议是使用Java Code作为Windows服务(?)我们可以在不同的作业之间共享一些公共数据? - 这有意义吗?

      参考: Java Service Wrapper

1 个答案:

答案 0 :(得分:0)

Concurensy是答案,尝试创建线程池或Executor服务,并停止某些线程5分钟,如果很少线程将使用相同的资源,你甚至可以使用同步。 记住并不总是越多线程使用越快你完成工作f.e. 3个线程 - 2分钟 第5次 - 6分钟

*阅读有关线程的教程

*创建fe简单线程,等待5分钟

*阅读一些关于线程池/同步和共享资源的教程(脚本部分) *测试以找到最佳方式