问题描述
我的服务面临堆使用问题。大多数时候它会达到 70-80%,然后下降。 我进行了堆转储并遇到了以下问题:
在我们的服务中,我能想到的可能原因是缓存实现。我们正在使用“scheduledexecutorservice”来安排缓存刷新。
private final scheduledexecutorservice scheduler = Executors.newSingleThreadScheduledExecutor();
private void createCache(@NonNull final CacheKey cacheKey,@NonNull final TimetoLive timetoLive) {
scheduler.scheduleWithFixedDelay(
new Runnable() {
@Override
public void run() {
dataLoadingCache.refresh(cacheKey);
}
},timetoLive.getTimetoLiveValue(),timetoLive.getTimeUnit());
}
现在在许多文档中,我看到堆使用的可能原因是 scheduledexecutorservice 的使用;喜欢 - https://nilesh-mahajan.medium.com/java-concurrency-pitfalls-of-scheduledexecutorservice-d7298b66e59f
需要建议来调试问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)