diff --git a/core/src/main/java/haveno/core/trade/Trade.java b/core/src/main/java/haveno/core/trade/Trade.java index 4fd38169b6..e05536deec 100644 --- a/core/src/main/java/haveno/core/trade/Trade.java +++ b/core/src/main/java/haveno/core/trade/Trade.java @@ -65,6 +65,7 @@ import haveno.core.trade.protocol.ProcessModelServiceProvider; import haveno.core.trade.protocol.TradeListener; import haveno.core.trade.protocol.TradePeer; import haveno.core.trade.protocol.TradeProtocol; +import haveno.core.trade.statistics.TradeStatisticsManager; import haveno.core.util.PriceUtil; import haveno.core.util.VolumeUtil; import haveno.core.xmr.model.XmrAddressEntry; @@ -2476,7 +2477,7 @@ public abstract class Trade extends XmrWalletBase implements Tradable, Model { // publish after random delay within 24 hours UserThread.runAfterRandomDelay(() -> { if (!isShutDownStarted) doPublishTradeStatistics(); - }, 0, 24 * 60 * 60 * 1000, TimeUnit.MILLISECONDS); + }, 0, TradeStatisticsManager.PUBLISH_STATS_RANDOM_DELAY_HOURS * 60 * 60 * 1000, TimeUnit.MILLISECONDS); } } diff --git a/core/src/main/java/haveno/core/trade/statistics/TradeStatisticsManager.java b/core/src/main/java/haveno/core/trade/statistics/TradeStatisticsManager.java index 9188da25d1..1e20efd5c2 100644 --- a/core/src/main/java/haveno/core/trade/statistics/TradeStatisticsManager.java +++ b/core/src/main/java/haveno/core/trade/statistics/TradeStatisticsManager.java @@ -20,6 +20,8 @@ package haveno.core.trade.statistics; import com.google.inject.Inject; import com.google.inject.Singleton; import com.google.inject.name.Named; + +import haveno.common.UserThread; import haveno.common.config.Config; import haveno.common.file.JsonFileManager; import haveno.core.locale.CurrencyTuple; @@ -55,6 +57,7 @@ public class TradeStatisticsManager { private final boolean dumpStatistics; private final ObservableSet observableTradeStatisticsSet = FXCollections.observableSet(); private JsonFileManager jsonFileManager; + public static final int PUBLISH_STATS_RANDOM_DELAY_HOURS = 24; @Inject public TradeStatisticsManager(P2PService p2PService, @@ -299,8 +302,12 @@ public class TradeStatisticsManager { return; } - log.info("Publishing trade statistics for {} {}", trade.getClass().getSimpleName(), trade.getShortId()); - p2PService.addPersistableNetworkPayload(tradeStatistics3V2, true); + // publish after random delay within 24 hours + log.info("Scheduling to publish trade statistics at random time for {} {}", trade.getClass().getSimpleName(), trade.getShortId()); + TradeStatistics3 tradeStatistics3V2Final = tradeStatistics3V2; + UserThread.runAfterRandomDelay(() -> { + p2PService.addPersistableNetworkPayload(tradeStatistics3V2Final, true); + }, 0, PUBLISH_STATS_RANDOM_DELAY_HOURS * 60 * 60 * 1000, TimeUnit.MILLISECONDS); }); log.info("maybeRepublishTradeStatistics took {} ms. Number of tradeStatistics: {}. Number of own trades: {}", System.currentTimeMillis() - ts, hashes.size(), trades.size());