mirror of
https://github.com/PowerJob/PowerJob.git
synced 2025-07-17 00:00:04 +08:00
fix: create TaskTracker failed causes HashMap to deadlock
This commit is contained in:
parent
fb2046649e
commit
a25eac67c7
@ -21,8 +21,11 @@ public class LightTaskTrackerManager {
|
|||||||
return INSTANCE_ID_2_TASK_TRACKER.get(instanceId);
|
return INSTANCE_ID_2_TASK_TRACKER.get(instanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LightTaskTracker removeTaskTracker(Long instanceId) {
|
public static void removeTaskTracker(Long instanceId) {
|
||||||
return INSTANCE_ID_2_TASK_TRACKER.remove(instanceId);
|
// 忽略印度的 IDE 警告,这个判断非常有用!!!不加这个判断会导致:如果创建 TT(先执行 computeIfAbsent 正在将TT添加到 HashMap) 时报错,TT 主动调用 destroy 销毁(从 HashMap移除该 TT)时死锁
|
||||||
|
if (INSTANCE_ID_2_TASK_TRACKER.containsKey(instanceId)) {
|
||||||
|
INSTANCE_ID_2_TASK_TRACKER.remove(instanceId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void atomicCreateTaskTracker(Long instanceId, Function<Long, LightTaskTracker> creator) {
|
public static void atomicCreateTaskTracker(Long instanceId, Function<Long, LightTaskTracker> creator) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user