通常的方法是从java中调用数据库。但根据我的场景,某个第三方应用程序正在执行插入操作,而我的应用程序只是在读取。在这种情况下,是否可以做一些事情,以便每当有新数据或数据库数据更新时,我希望我的java获取这些数据。即db中的任何改变都将触发我的java类。通过不运行任何进程或线程,例如,每2-5分钟运行一个进程来检查数据库,这将增加服务器上不必要的负载,而且它也不会是活动的,这意味着在这段时间内到达数据库的任何东西都会丢失。
发布于 2016-02-11 20:42:07
对于这个问题,可能还有其他好的解决方案(参见我的评论),但一个可能的快速技巧是编写一个插入/更新触发器,将新插入/更新的数据写入文件。
现在,为了实现同步,您可以将该“文件”设置为一个命名管道(一个FIFO),前提是您在*nix系统上运行。通过这种方式,您可以让Java代码在管道上执行阻塞读取,每次有新的插入/更新时,MySQL将写入管道(注意避免EOF),使用者(您的Java代码)将自己解除阻塞,处理新数据,然后再次阻塞,从而避免不必要的加载。
发布于 2016-02-11 20:43:32
我认为没有办法做到这一点。
(下面可能不是答案,而是一个建议。)java和其他应用程序似乎同时连接数据库。我认为问题出在这里。第三方应用程序应通知我的应用程序。我的应用程序应该插入到数据库中,然后做我想做的事情。那么就不会有像这样的问题了,我们可以做更灵活的工作。更安全..。也许还有其他原因..。但我希望你也能考虑到这一点。
https://stackoverflow.com/questions/35339402
复制相似问题