mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 23:18:17 +01:00
Use thread for json export
This commit is contained in:
parent
29e3ad0ee3
commit
df5ad53eb9
1 changed files with 25 additions and 3 deletions
|
@ -17,23 +17,32 @@
|
||||||
|
|
||||||
package io.bisq.core.dao.blockchain.json;
|
package io.bisq.core.dao.blockchain.json;
|
||||||
|
|
||||||
|
import com.google.common.util.concurrent.FutureCallback;
|
||||||
|
import com.google.common.util.concurrent.Futures;
|
||||||
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
|
import com.google.common.util.concurrent.ListeningExecutorService;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import io.bisq.common.storage.PlainTextWrapper;
|
import io.bisq.common.storage.PlainTextWrapper;
|
||||||
import io.bisq.common.storage.Storage;
|
import io.bisq.common.storage.Storage;
|
||||||
|
import io.bisq.common.util.Utilities;
|
||||||
import io.bisq.core.dao.RpcOptionKeys;
|
import io.bisq.core.dao.RpcOptionKeys;
|
||||||
import io.bisq.core.dao.blockchain.BsqChainState;
|
import io.bisq.core.dao.blockchain.BsqChainState;
|
||||||
import io.bisq.core.dao.blockchain.btcd.PubKeyScript;
|
import io.bisq.core.dao.blockchain.btcd.PubKeyScript;
|
||||||
import io.bisq.core.dao.blockchain.vo.SpentInfo;
|
import io.bisq.core.dao.blockchain.vo.SpentInfo;
|
||||||
import io.bisq.core.dao.blockchain.vo.TxOutput;
|
import io.bisq.core.dao.blockchain.vo.TxOutput;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
public class JsonExporter {
|
public class JsonExporter {
|
||||||
private final Storage<PlainTextWrapper> jsonStorage;
|
private final Storage<PlainTextWrapper> jsonStorage;
|
||||||
private final boolean dumpBlockchainData;
|
private final boolean dumpBlockchainData;
|
||||||
private final BsqChainState bsqChainState;
|
private final BsqChainState bsqChainState;
|
||||||
private final File storageDir;
|
private final File storageDir;
|
||||||
|
private final ListeningExecutorService executor = Utilities.getListeningExecutorService("JsonExporter", 1, 1, 1200);
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public JsonExporter(Storage<PlainTextWrapper> jsonStorage,
|
public JsonExporter(Storage<PlainTextWrapper> jsonStorage,
|
||||||
|
@ -60,10 +69,23 @@ public class JsonExporter {
|
||||||
list.toArray(array);*/
|
list.toArray(array);*/
|
||||||
//jsonStorage.queueUpForSave(new PlainTextWrapper(Utilities.objectToJson(array)), 5000);
|
//jsonStorage.queueUpForSave(new PlainTextWrapper(Utilities.objectToJson(array)), 5000);
|
||||||
|
|
||||||
|
ListenableFuture<Void> future = executor.submit(() -> {
|
||||||
|
final BsqChainState clone = BsqChainState.getClone(bsqChainState);
|
||||||
|
jsonStorage.queueUpForSave(new PlainTextWrapper(Utilities.objectToJson(clone)), 5000);
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
|
Futures.addCallback(future, new FutureCallback<Void>() {
|
||||||
|
public void onSuccess(Void ignore) {
|
||||||
|
log.trace("onSuccess");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onFailure(@NotNull Throwable throwable) {
|
||||||
|
log.error(throwable.toString());
|
||||||
|
throwable.printStackTrace();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
final BsqChainState clone = BsqChainState.getClone(bsqChainState);
|
|
||||||
// TODO use thread
|
|
||||||
// jsonStorage.queueUpForSave(new PlainTextWrapper(Utilities.objectToJson(clone)), 5000);
|
|
||||||
|
|
||||||
// keep the individual file storage option as code as we dont know yet what we will use.
|
// keep the individual file storage option as code as we dont know yet what we will use.
|
||||||
/* log.error("txOutputForJson " + txOutputForJson);
|
/* log.error("txOutputForJson " + txOutputForJson);
|
||||||
|
|
Loading…
Add table
Reference in a new issue