|
20 | 20 | import com.google.inject.Inject;
|
21 | 21 | import com.google.inject.Singleton;
|
22 | 22 | import com.google.inject.name.Named;
|
| 23 | + |
| 24 | +import haveno.common.UserThread; |
23 | 25 | import haveno.common.config.Config;
|
24 | 26 | import haveno.common.file.JsonFileManager;
|
25 | 27 | import haveno.core.locale.CurrencyTuple;
|
@@ -55,6 +57,7 @@ public class TradeStatisticsManager {
|
55 | 57 | private final boolean dumpStatistics;
|
56 | 58 | private final ObservableSet<TradeStatistics3> observableTradeStatisticsSet = FXCollections.observableSet();
|
57 | 59 | private JsonFileManager jsonFileManager;
|
| 60 | + public static final int PUBLISH_STATS_RANDOM_DELAY_HOURS = 24; |
58 | 61 |
|
59 | 62 | @Inject
|
60 | 63 | public TradeStatisticsManager(P2PService p2PService,
|
@@ -299,8 +302,12 @@ public void maybePublishTradeStatistics(Set<Trade> trades,
|
299 | 302 | return;
|
300 | 303 | }
|
301 | 304 |
|
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); |
304 | 311 | });
|
305 | 312 | log.info("maybeRepublishTradeStatistics took {} ms. Number of tradeStatistics: {}. Number of own trades: {}",
|
306 | 313 | System.currentTimeMillis() - ts, hashes.size(), trades.size());
|
|
0 commit comments