mirror of
https://github.com/didi/KnowStreaming.git
synced 2025-12-24 03:42:07 +08:00
[Optimize]Topic-Partitions增加主动超时功能 (#1076)
问题: leader=-1的分区获取offset信息时,耗时时间过久会导致前端超时,进而整个页面的数据都获取不到; 解决: 后端主动在前端超时前,对一些请求进行超时,避免导致所有的信息都没有返回给前端;
This commit is contained in:
@@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
/**
|
||||
@@ -21,7 +22,7 @@ public class ApiCallThreadPoolService {
|
||||
@Value(value = "${thread-pool.api.queue-size:500}")
|
||||
private Integer queueSize;
|
||||
|
||||
private static FutureWaitUtil<Object> apiFutureUtil;
|
||||
private static FutureWaitUtil<Boolean> apiFutureUtil;
|
||||
|
||||
@PostConstruct
|
||||
private void init() {
|
||||
@@ -33,7 +34,7 @@ public class ApiCallThreadPoolService {
|
||||
);
|
||||
}
|
||||
|
||||
public static void runnableTask(String taskName, Integer timeoutUnisMs, Callable<Object> callable) {
|
||||
public static void runnableTask(String taskName, Integer timeoutUnisMs, Callable<Boolean> callable) {
|
||||
apiFutureUtil.runnableTask(taskName, timeoutUnisMs, callable);
|
||||
}
|
||||
|
||||
@@ -41,12 +42,13 @@ public class ApiCallThreadPoolService {
|
||||
apiFutureUtil.runnableTask(taskName, timeoutUnisMs, runnable);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static void waitResult(Integer stepWaitTimeUnitMs) {
|
||||
apiFutureUtil.waitResult(stepWaitTimeUnitMs);
|
||||
}
|
||||
|
||||
public static void waitResult() {
|
||||
apiFutureUtil.waitResult(0);
|
||||
}
|
||||
|
||||
public static boolean waitResultAndReturnFinished(int taskNum) {
|
||||
List<Boolean> resultList = apiFutureUtil.waitResult(0);
|
||||
|
||||
return resultList != null && resultList.size() == taskNum;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user