3

我正在设计一个以固定间隔发送文本的应用程序。在此间隔期间,应用程序正在收集数据并将其临时存储在缓冲区中,然后再将其发送出去(并清除数据库的内容)。

我尽量不将它们存储在内存中。

目前我正在考虑使用 H2 嵌入式数据库。

我们通常在 Java 中用于缓冲区实现的是什么?纯文本文件?日志文件?

4

2 回答 2

1

阅读您的评论后,我认为您的问题的实现可能是:

创建一个事务服务,在其中收集所有必要的信息,将其存储在 StringBuilder 中,发送信息并最终清除数据库中的内容,如果出现任何问题,您的数据库将保留信息,换句话说,这是一项可靠的服务。

如果您使用多个线程来恢复信息,请记住 StringBuilder 是不同步的,因此如果您的解决方案有多个线程在 StringBuilder 上工作,请不要忘记在内部同步您的类或使用 StringBuffer(请记住,这是线程安全的,但速度较慢)。

我希望这有帮助。

于 2012-09-28T01:20:28.277 回答
0

内存缓冲区与否还取决于您的应用程序需求。例如,如果您的应用程序必须可靠并在发生导致崩溃的问题时管理恢复,则更好的方法是使用文件,如果某些数据尚未处理,您可以恢复。

对于这种需求,还有MOM(面向消息的中间件)选项,该解决方案提供了包括可靠性在内的许多优点。但是如果您不需要可靠性并且只存在一些数据交换,则无需使用MOM。

于 2012-09-27T23:40:19.843 回答