Skip to content

Commit cfc62aa

Browse files
committed
add random delay to publish trade statistics on startup within 24 hours
1 parent 723d5cc commit cfc62aa

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

core/src/main/java/haveno/core/trade/Trade.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
import haveno.core.trade.protocol.TradeListener;
6666
import haveno.core.trade.protocol.TradePeer;
6767
import haveno.core.trade.protocol.TradeProtocol;
68+
import haveno.core.trade.statistics.TradeStatisticsManager;
6869
import haveno.core.util.PriceUtil;
6970
import haveno.core.util.VolumeUtil;
7071
import haveno.core.xmr.model.XmrAddressEntry;
@@ -2476,7 +2477,7 @@ public void maybePublishTradeStatistics() {
24762477
// publish after random delay within 24 hours
24772478
UserThread.runAfterRandomDelay(() -> {
24782479
if (!isShutDownStarted) doPublishTradeStatistics();
2479-
}, 0, 24 * 60 * 60 * 1000, TimeUnit.MILLISECONDS);
2480+
}, 0, TradeStatisticsManager.PUBLISH_STATS_RANDOM_DELAY_HOURS * 60 * 60 * 1000, TimeUnit.MILLISECONDS);
24802481
}
24812482
}
24822483

core/src/main/java/haveno/core/trade/statistics/TradeStatisticsManager.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import com.google.inject.Inject;
2121
import com.google.inject.Singleton;
2222
import com.google.inject.name.Named;
23+
24+
import haveno.common.UserThread;
2325
import haveno.common.config.Config;
2426
import haveno.common.file.JsonFileManager;
2527
import haveno.core.locale.CurrencyTuple;
@@ -55,6 +57,7 @@ public class TradeStatisticsManager {
5557
private final boolean dumpStatistics;
5658
private final ObservableSet<TradeStatistics3> observableTradeStatisticsSet = FXCollections.observableSet();
5759
private JsonFileManager jsonFileManager;
60+
public static final int PUBLISH_STATS_RANDOM_DELAY_HOURS = 24;
5861

5962
@Inject
6063
public TradeStatisticsManager(P2PService p2PService,
@@ -299,8 +302,12 @@ public void maybePublishTradeStatistics(Set<Trade> trades,
299302
return;
300303
}
301304

302-
log.info("Publishing trade statistics for {} {}", trade.getClass().getSimpleName(), trade.getShortId());
303-
p2PService.addPersistableNetworkPayload(tradeStatistics3V2, true);
305+
// publish after random delay within 24 hours
306+
log.info("Scheduling to publish trade statistics at random time for {} {}", trade.getClass().getSimpleName(), trade.getShortId());
307+
TradeStatistics3 tradeStatistics3V2Final = tradeStatistics3V2;
308+
UserThread.runAfterRandomDelay(() -> {
309+
p2PService.addPersistableNetworkPayload(tradeStatistics3V2Final, true);
310+
}, 0, PUBLISH_STATS_RANDOM_DELAY_HOURS * 60 * 60 * 1000, TimeUnit.MILLISECONDS);
304311
});
305312
log.info("maybeRepublishTradeStatistics took {} ms. Number of tradeStatistics: {}. Number of own trades: {}",
306313
System.currentTimeMillis() - ts, hashes.size(), trades.size());

0 commit comments

Comments
 (0)