2011-10-11 35 views
1

我正在编写一个调度程序,它抓取XML数据并插入到MySQL DB中 - 简单的不是。但是我试图找到的问题或逻辑就在这里。 注意:我想在Windows环境中执行此操作,将来可能会将其配置为其他平台。如何在计划任务之间共享数据

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

意见/建议:

  1. 由于延迟,我不知道我应该如何存储在其中将各计划间共享的脚本配置。
  2. 无论如何在代码中使用static变量来存储这些数据?哪些将被分享b/w不同的工作?或不同的时间表?
  3. 基本上,我应该如何实现这个?性能方面更好的方法。

谢谢你的时间。

UPDATE:

其中一个建议是使用Java代码作为窗口服务,我们可以有不同的工作之间共享一些常见的数据(?)? - 是否有意义?

参考: Java Service Wrapper

回答

0

Concurensy就是答案,请尝试创建线程池或执行人servises,并停止某些线程5分钟,你甚至coud使用同步,如果几个线程将使用相同的资源合作。 记住并不总是越多的线程使用更快,你会完成你的工作f.e. 3 threads- 2分钟 5threads-6分钟

*阅读教程的主题

*创建FE与等待简单线程5分钟

*了解线程池/ synchnizations和共享资源的开发一些教程(脚本部分) *测试找到最优化的方式