java - 如何监控数据库中的新条目?

标签 java database jdbc

我有一个应用程序解决方案,它由一个用 Python 编写的 Web 应用程序(使用 Django 框架)和一个在服务器上运行的 Java 应用程序组成。

Web 应用程序接收数据并将其存储到数据库队列中。然后,Java 应用程序将处理接收到的数据并将结果存储在数据库中。

我的问题是如何通知 Java 应用程序数据库中有新数据?现在,我似乎必须定期轮询数据库以获取新数据。有什么办法解决这个问题吗?

附言。我考虑过使用 Jython 和观察者模式运行 Web 应用程序,但我的主机不支持 Servlet。

最佳答案

除非数据库特别支持,否则轮询是我所知道的唯一选择。

但是,如果您关心的是 Java 服务器上的负载,您可以让另一台服务器只轮询更改,然后在发生更改时通知您的 Java 服务器。我不知道这是否比从 Java 服务器进行简单轮询更好(不知道您的特定问题空间和硬件限制)。

希望对您有所帮助。


编辑:再次阅读您的陈述后,您似乎已经在执行类似框架的消息传递(使用 Java 应用程序中的队列),因此数据库更改可能只是进入队列的另一条消息。如果需要优先级,您可以为消息赋予优先级标记,以便在需要处理时处理它们。

关于java - 如何监控数据库中的新条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3688645/

相关文章:

tsql - Grails Project jdbc TSQL如何创建datetime2列

java - 这个 Java JDBC 程序有什么问题?

java - Sybase 类 com.sybase.jdbc3.jdbc.SybDriver 的 MSSQL 驱动程序等效项是什么?

java - 验证 java 版本兼容性

Java For循环终止条件: == vs <= vs >=

sql - 关系代数 - 恰好找到两个值

ruby-on-rails - 如何在现有 "unique"旁边的 Rails 3 和 PostgreSQL 中指定 "unique key"值?

java - 使用 Wildfly 在 Jersey 上使用 @PersistenceUnit 注入(inject) EntityManagerFactory

java - 如何使用 Jersey Web 服务发布多个文件(图像)。?

database - Vertica DB 中的唯一约束