Loading shared/src/main/java/com/inteligr8/alfresco/asie/model/PersistedNode.java 0 → 100644 +36 −0 Original line number Diff line number Diff line package com.inteligr8.alfresco.asie.model; import java.io.Serializable; public class PersistedNode implements Serializable { private static final long serialVersionUID = 4105196543023419818L; private final SolrHost node; private final long persistMillis; private long expireTimeMillis; public PersistedNode(SolrHost node, int persistMinutes) { this.node = node; this.persistMillis = persistMinutes * 60L * 1000L; this.reset(); } public void reset() { this.expireTimeMillis = System.currentTimeMillis() + this.persistMillis; } public boolean isExpired() { return this.expireTimeMillis < System.currentTimeMillis(); } public SolrHost getNode() { return this.node; } @Override public String toString() { return "node: " + this.node + "; expires in: " + (System.currentTimeMillis() - this.expireTimeMillis) + " ms"; } } shared/src/main/java/com/inteligr8/alfresco/asie/service/ShardBackupService.java +2 −34 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import com.inteligr8.alfresco.asie.Constants; import com.inteligr8.alfresco.asie.model.PersistedNode; import com.inteligr8.alfresco.asie.model.ShardSet; import com.inteligr8.alfresco.asie.model.SolrHost; Loading @@ -34,7 +35,7 @@ public class ShardBackupService implements com.inteligr8.alfresco.asie.spi.Shard this.logger.debug("Found backup node: {}", backupNode); if (backupNode == null || backupNode.isExpired()) { backupNode = new PersistedNode(node); backupNode = new PersistedNode(node, this.persistTimeMinutes); this.attributeService.setAttribute(backupNode, Constants.ATTR_ASIE, ATTR_BACKUP_NODE, shardKey); } Loading @@ -50,37 +51,4 @@ public class ShardBackupService implements com.inteligr8.alfresco.asie.spi.Shard this.attributeService.removeAttribute(Constants.ATTR_ASIE, ATTR_BACKUP_NODE, shardKey); } private class PersistedNode implements Serializable { private static final long serialVersionUID = 4105196543023419818L; private final SolrHost node; private long expireTimeMillis; PersistedNode(SolrHost node) { this.node = node; this.reset(); } void reset() { this.expireTimeMillis = System.currentTimeMillis() + persistTimeMinutes * 60L * 1000L; } boolean isExpired() { return this.expireTimeMillis < System.currentTimeMillis(); } SolrHost getNode() { return this.node; } @Override public String toString() { return "node: " + this.node + "; expires in: " + (System.currentTimeMillis() - this.expireTimeMillis) + " ms"; } } } Loading
shared/src/main/java/com/inteligr8/alfresco/asie/model/PersistedNode.java 0 → 100644 +36 −0 Original line number Diff line number Diff line package com.inteligr8.alfresco.asie.model; import java.io.Serializable; public class PersistedNode implements Serializable { private static final long serialVersionUID = 4105196543023419818L; private final SolrHost node; private final long persistMillis; private long expireTimeMillis; public PersistedNode(SolrHost node, int persistMinutes) { this.node = node; this.persistMillis = persistMinutes * 60L * 1000L; this.reset(); } public void reset() { this.expireTimeMillis = System.currentTimeMillis() + this.persistMillis; } public boolean isExpired() { return this.expireTimeMillis < System.currentTimeMillis(); } public SolrHost getNode() { return this.node; } @Override public String toString() { return "node: " + this.node + "; expires in: " + (System.currentTimeMillis() - this.expireTimeMillis) + " ms"; } }
shared/src/main/java/com/inteligr8/alfresco/asie/service/ShardBackupService.java +2 −34 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import com.inteligr8.alfresco.asie.Constants; import com.inteligr8.alfresco.asie.model.PersistedNode; import com.inteligr8.alfresco.asie.model.ShardSet; import com.inteligr8.alfresco.asie.model.SolrHost; Loading @@ -34,7 +35,7 @@ public class ShardBackupService implements com.inteligr8.alfresco.asie.spi.Shard this.logger.debug("Found backup node: {}", backupNode); if (backupNode == null || backupNode.isExpired()) { backupNode = new PersistedNode(node); backupNode = new PersistedNode(node, this.persistTimeMinutes); this.attributeService.setAttribute(backupNode, Constants.ATTR_ASIE, ATTR_BACKUP_NODE, shardKey); } Loading @@ -50,37 +51,4 @@ public class ShardBackupService implements com.inteligr8.alfresco.asie.spi.Shard this.attributeService.removeAttribute(Constants.ATTR_ASIE, ATTR_BACKUP_NODE, shardKey); } private class PersistedNode implements Serializable { private static final long serialVersionUID = 4105196543023419818L; private final SolrHost node; private long expireTimeMillis; PersistedNode(SolrHost node) { this.node = node; this.reset(); } void reset() { this.expireTimeMillis = System.currentTimeMillis() + persistTimeMinutes * 60L * 1000L; } boolean isExpired() { return this.expireTimeMillis < System.currentTimeMillis(); } SolrHost getNode() { return this.node; } @Override public String toString() { return "node: " + this.node + "; expires in: " + (System.currentTimeMillis() - this.expireTimeMillis) + " ms"; } } }