0

我正在使用 Java 和 MySQL 数据库开发应用程序,该应用程序是在网络环境中工作的桌面应用程序。应用程序有一些在启动应用程序时从数据库加载的静态内容。如果超级用户对某些变量进行了一些更改,我需要强制网络用户重新启动应用程序,以便他们可以加载新变量。

我需要使用什么想法或代码?

4

4 回答 4

0

我不明白你真正需要做什么。但我通常做的是告诉用户,这些更改只有在应用程序重新启动时才会生效。之后,用户负责重新启动应用程序。如果您想自动执行此操作,您只需要在更改数据时刷新更改的数据

于 2013-03-01T13:41:09.657 回答
0

该用例有很多解决方案。我会为您的对象设置时间戳。当管理员更改该对象时,时间戳将在服务器端更新为当前日期。将对象交付给客户端后,客户端必须将接收到的对象与客户端当前使用的对象进行比较。如果时间戳不相等,您可以显示警告对话框。如果您拥有该解决方案很容易实现的架构......

于 2013-03-01T13:45:06.737 回答
0

你可以实现这样的东西。

观察者模式

或者,也许您可​​以在数据库中有一个“ConfigTable”,其中包含属性、值、到期时间。

因此,当管理员更新某个值时,网络中的其他应用程序可以汇集新值。

看看 JGroups

关于池化方法,(我们没有足够的信息来为您提供最佳解决方案)您可以尝试这样的方法。

带有 ID、事件的通知表(事件是您知道的,可能会加载新图像等)

工作流程

1)客户端每隔 X 秒从该表池中过滤一次,过滤 ID > lastNotificationId(需要保存在本地文件中) 2)客户端应用新事件。3)客户端用新的notificationId更新本地文件。

于 2013-03-01T13:47:08.070 回答
0

为什么不将数据存储在可以覆盖值的容器中?这样您就不必重新启动应用程序,只需即时刷新数据。

这样,您可以重新定义 a MessageBundle、 aProperties或用于存储数据的任何容器对象的内容。

于 2013-03-01T13:47:19.860 回答