我有一个应用程序解决方案,它由用Python编写的Web应用程序(使用Django框架)和在服务器上运行的Java应用程序组成。
Web应用程序接收数据并将其存储到数据库队列中。然后,Java应用程序将处理接收的数据,并将结果存储在数据库中。
我的问题是如何通知Java应用程序数据库中有新数据?现在,似乎我将不得不定期轮询数据库以获取新数据。有没有办法解决这个问题?
PS。我考虑过使用Jython运行Web应用程序并使用Observer模式但我的主机不支持Servlet。
答案 0 :(得分:1)
除非数据库特别支持,否则轮询是我所知道的唯一选择。
但是,如果您的担心是在Java服务器上加载,您可以让另一台服务器除了轮询更改之外什么都不做,然后在发生更改时通知您的Java服务器。我不知道这是否比从Java服务器进行简单轮询更好(不知道您的具体问题空间和硬件限制)。
希望有所帮助。
编辑:再次阅读你的语句之后,好像你已经在做一个类似于框架的消息传递(使用java应用程序中的队列),因此数据库更改可能只是进入队列的另一条消息。如果需要优先级,您可以为消息提供优先级标记,以便在需要处理时对其进行处理。