2016-09-19 60 views
1

我创建了一个Java程序,每30分钟从数据库读取信息,并将它们保存在结构中Vector<Vector<Object>>。 为此,请使用ScheduledExecutorService如何通知Java程序数据库的数据已更改

我创建了第二个Java程序,允许您从数据库中添加/修改/删除项目。我如何通知第一个程序在数据库中发生了一些变化,然后在不等待30分钟的情况下重新读取新信息?

第一个程序总是处于活动状态,而第二个程序仅在需要更改时才执行。

回答

1

如果您只能从第二个Java程序添加/修改/删除项目,您可以调用第一个程序的方法。

要做到这一点,最简单的方法是从第一个程序中公开一个Web服务,每次修改数据库时都可以从第二个程序调用该服务。

但是,如果您也可以直接在数据库上修改数据库项目,则需要在数据库上创建触发器并直接从数据库调用Web服务。请注意,第二种方法(直接在触发事件上调用ws)是一种不好的做法。在这种情况下,您可以将两个过程组合在一起:如果第二个Java程序发生修改,并直接在数据库上进行修改,则直接调用ws。

+0

你的意思是在第一个程序上激活套接字服务以允许它们之间的通信? – JoeJoe

+1

如果第二个程序不是Web应用程序,则激活套接字,否则如果其他程序是Web应用程序,则直接公开Web服务。 –

+1

@JoeJoe,你应该“激活”任何手段,以允许program2与program1通信。它可以是套接字(如果它们之间的网络访问正常),写入相互可访问的文件,ping ...它取决于您的部署方案。 – bruno

相关问题