我如何与批处理程序进行通信?

时间:2019-01-03 14:15:32

标签: java multithreading sockets batch-file daemon

我有一个控制台应用程序,该应用程序具有无限循环以使其能够全天候运行,它具有应有的数据库访问权限,但配置是通过数据库进行的,进程在进入无限循环时将读取一次它使用配置,所以当我必须更改任何配置时,我必须停止它以更改数据库中的信息并重新启动批处理。我的问题是:

  • 有没有更好的方法可以使批处理过程变得无限长?
  • 我认为
  • 通过数据库进行通信不是一个好习惯,一旦您必须始终从数据库读取数据(即使数据没有更改),我就在考虑通过套接字通信来设置内部的变量(静态)代码,使其可以正常运行。还有其他方法可以视为最佳做法吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

套接字通信是一种通用解决方案,但需要一些工作。如果您可以访问运行该批处理过程的计算机,则可以简单地循环读取 System.in 并根据操作员提供的值更新配置。

答案 1 :(得分:0)

标准操作是让控制台应用程序偶尔在运行时(例如,每5分钟一次)查询数据库。

诀窍是,继续进行数据库访问不会成为障碍或降低应用程序的可靠性,在于,如果应用程序暂时无法访问数据库,则应仅继续使用其现有配置(而不是崩溃或拒绝继续进行操作)人们第一次自然地写出来,直到凌晨3点被喊出太多次)。

无需套接字通信或新组件。