From 3d777769d4717810a55a72e1fe89548000977cff Mon Sep 17 00:00:00 2001 From: blavenie <benoit.lavenier@e-is.pro> Date: Wed, 20 Sep 2017 14:58:56 +0200 Subject: [PATCH] [enh] Synchro: Add api ES_SUBSCRIPTION_API --- .../dao/impl/SynchroExecutionDaoImpl.java | 12 ++++++++++-- .../elasticsearch/model/SynchroExecution.java | 10 ++++++++++ .../elasticsearch/synchro/SynchroService.java | 3 --- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/dao/impl/SynchroExecutionDaoImpl.java b/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/dao/impl/SynchroExecutionDaoImpl.java index 746ab651..c91ecfa5 100644 --- a/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/dao/impl/SynchroExecutionDaoImpl.java +++ b/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/dao/impl/SynchroExecutionDaoImpl.java @@ -88,16 +88,18 @@ public class SynchroExecutionDaoImpl extends AbstractDao implements SynchroExecu Preconditions.checkNotNull(peer); Preconditions.checkNotNull(peer.getCurrency()); Preconditions.checkNotNull(peer.getId()); + Preconditions.checkNotNull(peer.getApi()); BoolQueryBuilder query = QueryBuilders.boolQuery() - .filter(QueryBuilders.termQuery(SynchroExecution.PROPERTY_PEER, peer.getId())); + .filter(QueryBuilders.termQuery(SynchroExecution.PROPERTY_PEER, peer.getId())) + .filter(QueryBuilders.termQuery(SynchroExecution.PROPERTY_API, peer.getApi())); SearchResponse response = client.prepareSearch(peer.getCurrency()) .setTypes(TYPE) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setQuery(query) .setFetchSource(true) - .setFrom(0).setSize(1) + .setSize(1) .addSort(SynchroExecution.PROPERTY_TIME, SortOrder.DESC) .get(); @@ -126,6 +128,12 @@ public class SynchroExecutionDaoImpl extends AbstractDao implements SynchroExecu .field("index", "not_analyzed") .endObject() + // peer + .startObject(SynchroExecution.PROPERTY_API) + .field("type", "string") + .field("index", "not_analyzed") + .endObject() + // issuer .startObject(SynchroExecution.PROPERTY_ISSUER) .field("type", "string") diff --git a/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/model/SynchroExecution.java b/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/model/SynchroExecution.java index c17dfc07..9ce4b4df 100644 --- a/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/model/SynchroExecution.java +++ b/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/model/SynchroExecution.java @@ -6,11 +6,13 @@ public class SynchroExecution extends Record { public static final String PROPERTY_CURRENCY = "currency"; public static final String PROPERTY_PEER = "peer"; + public static final String PROPERTY_API = "api"; public static final String PROPERTY_RESULT = "result"; private String currency; private String peer; + private String api; private SynchroResult result; public String getCurrency() { @@ -36,4 +38,12 @@ public class SynchroExecution extends Record { public void setResult(SynchroResult result) { this.result = result; } + + public String getApi() { + return api; + } + + public void setApi(String api) { + this.api = api; + } } diff --git a/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/synchro/SynchroService.java b/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/synchro/SynchroService.java index e3055402..29073c50 100644 --- a/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/synchro/SynchroService.java +++ b/duniter4j-es-core/src/main/java/org/duniter/elasticsearch/synchro/SynchroService.java @@ -303,8 +303,6 @@ public class SynchroService extends AbstractService { protected boolean waitPeersReady() throws InterruptedException{ final int sleepTime = 10 * 1000 /*10s*/; - - int maxWaitingDuration = 5 * 6 * sleepTime; // 5 min int waitingDuration = 0; while (!isReady() && !hasSomePeers()) { @@ -326,7 +324,6 @@ public class SynchroService extends AbstractService { protected long getLastExecutionTime(Peer peer) { Preconditions.checkNotNull(peer); - Preconditions.checkNotNull(peer.getId()); try { SynchroExecution execution = synchroExecutionDao.getLastExecution(peer); -- GitLab