gpt4 book ai didi

java - 让两个长时间运行的进程通过文本文件互相发送 "talk"

转载 作者:行者123 更新时间:2023-11-30 02:48:33 26 4
gpt4 key购买 nike

我有两个(Java)进程在不同的 JVM 上重复运行。第一个经常发现一些“信息”并需要将其存储在某个地方。第二个进程定期读取此信息来处理它。这些间隔或多或少是随机的,因此进程 1 可能会找到三条信息,直到进程 2 读取它们为止,反之亦然。

我的方法是将这些信息写入文本文件。但我担心附加和读取文本文件会意外同时发生,从而导致我遇到锁。但是为每条信息编写一个新的文本文件似乎有点矫枉过正。

更好的解决方案是什么?

编辑:抱歉,我没有说清楚:java进程在不同的JVM中运行。他们无法直接看到对方。

最佳答案

只要您小心处理文件并且更新率不高,例如,您就可以使其发挥作用。每秒 10 次更新。

注意:您可以通过文件重命名而不是锁定来实现。

What would be a better solution?

几乎任何东西,SO 并不是为了推荐东西,但在这种情况下,我可以推荐任何东西,而无需更具体的要求。例如,我可以推荐我的图书馆 Chronicle Queue因为我写了它并且我确信它可以做你想要的,但是有很多可能的选择。

I am sending about one line of text every minute.

因此,您可以为每条消息编写一个临时文件,完成后重命名。消费者可以有一个目录观察器,因此一旦您完成此操作,它就会知道。完成后,消费者可以删除该文件。这会产生开销,但不会超过 10 毫秒。

如果你想保留所有消息的记录,生产者也可以写入日志文件。

关于java - 让两个长时间运行的进程通过文本文件互相发送 "talk",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39406322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com