[ISSUE #7853] Fix the manualDeleteFileSeveralTimes count

This commit is contained in:
ChineseTony
2024-02-29 10:48:31 +08:00
committed by GitHub
parent af900e9416
commit 3877dcd134
@@ -2183,7 +2183,7 @@ public class DefaultMessageStore implements MessageStore {
System.getProperty("rocketmq.broker.diskSpaceCleanForciblyRatio", "");
private long lastRedeleteTimestamp = 0;
private volatile int manualDeleteFileSeveralTimes = 0;
private final AtomicInteger manualDeleteFileSeveralTimes = new AtomicInteger();
private volatile boolean cleanImmediately = false;
@@ -2226,7 +2226,7 @@ public class DefaultMessageStore implements MessageStore {
}
public void executeDeleteFilesManually() {
this.manualDeleteFileSeveralTimes = MAX_MANUAL_DELETE_FILE_TIMES;
this.manualDeleteFileSeveralTimes.set(MAX_MANUAL_DELETE_FILE_TIMES);
DefaultMessageStore.LOGGER.info("executeDeleteFilesManually was invoked");
}
@@ -2248,12 +2248,12 @@ public class DefaultMessageStore implements MessageStore {
boolean isTimeUp = this.isTimeToDelete();
boolean isUsageExceedsThreshold = this.isSpaceToDelete();
boolean isManualDelete = this.manualDeleteFileSeveralTimes > 0;
boolean isManualDelete = this.manualDeleteFileSeveralTimes.get() > 0;
if (isTimeUp || isUsageExceedsThreshold || isManualDelete) {
if (isManualDelete) {
this.manualDeleteFileSeveralTimes--;
this.manualDeleteFileSeveralTimes.decrementAndGet();
}
boolean cleanAtOnce = DefaultMessageStore.this.getMessageStoreConfig().isCleanFileForciblyEnable() && this.cleanImmediately;
@@ -2262,7 +2262,7 @@ public class DefaultMessageStore implements MessageStore {
fileReservedTime,
isTimeUp,
isUsageExceedsThreshold,
manualDeleteFileSeveralTimes,
manualDeleteFileSeveralTimes.get(),
cleanAtOnce,
deleteFileBatchMax);
@@ -2407,11 +2407,11 @@ public class DefaultMessageStore implements MessageStore {
}
public int getManualDeleteFileSeveralTimes() {
return manualDeleteFileSeveralTimes;
return manualDeleteFileSeveralTimes.get();
}
public void setManualDeleteFileSeveralTimes(int manualDeleteFileSeveralTimes) {
this.manualDeleteFileSeveralTimes = manualDeleteFileSeveralTimes;
this.manualDeleteFileSeveralTimes.set(manualDeleteFileSeveralTimes);
}
public double calcStorePathPhysicRatio() {