gpt4 book ai didi

java - 带有 Spring 和 Redis 的 Vaadin 在缓慢的环境中加载以前的 UI 状态

转载 作者:可可西里 更新时间:2023-11-01 11:24:37 24 4
gpt4 key购买 nike

我在 spring boot + vaadin 应用程序中成功启用了 redis,它在我的电脑上运行良好。应用程序在较慢的环境中测试运行,多次出现错误。

WARN  c.v.s.communication.ServerRpcHandler [ServerRpcHandler.java : 266] - Unexpected message id from the client. Expected: 248, got: 249

好像是VaadinSession的序列化/反序列化时间过长的时候发生的。例如,我有一个包含多个复选框的页面。我点击第一个,然后是第二个和第三个。在此之后,将抛出上方警告并显示页面的先前状态。在这种情况下,它可能没有任何选中的复选框或只有一个或两个选中的复选框。在极少数情况下,它可以正常工作。

我想不出解决问题的方法。我尝试过的一件事是立即显示加载指示器(100 毫秒)(默认情况下是在加载 300 毫秒后),但这并没有解决问题。

我能否以某种方式配置序列化/反序列化发生的时间而不是每次 UI 更改,或者通过将 VaadinSession 的部分内容排除在外来使其更快? (我需要当前页面上的数据,所以我不能使 ui 组件 transient 化。)

最佳答案

我们就我工作场所的问题进行了讨论,我们认为组件工作正常。当序列化比下一个请求的反序列化慢时,就会出现问题。 (每个 UI 更改都从反序列化开始,以获取最新状态,然后序列化修改后的状态。)我的解决方案是创建一个方面,用于存储为序列化发送的最新 VaadinSession,并将每个反序列化的 VaadinSession 与存储的 VaadinSession 进行比较。我保留了具有较高 lastProcessedClientToServerId 的那个。这几乎每次都能解决问题。

关于java - 带有 Spring 和 Redis 的 Vaadin 在缓慢的环境中加载以前的 UI 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50463333/

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