X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneInserter.java;h=c2e0cc6e3e670986655abf617d0531d052978f7b;hb=6e08990d7764f321237a896f55c517c9cbd98815;hp=cf26ebb360da0eb2849ea3c1de22cda67def2293;hpb=01e8cfe1d7cf5ff68428964441d6c77731adb6bd;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/SoneInserter.java b/src/main/java/net/pterodactylus/sone/core/SoneInserter.java index cf26ebb..c2e0cc6 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneInserter.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneInserter.java @@ -104,21 +104,24 @@ public class SoneInserter extends AbstractService { @Override protected void serviceRun() { long modificationCounter = 0; - boolean restartNow = true; + long lastModificationTime = 0; while (!shouldStop()) { - if (!restartNow) { - logger.log(Level.FINEST, "Waiting 60 seconds before checking Sone “" + sone.getName() + "”."); - sleep(60 * 1000); - } - restartNow = false; + /* check every seconds. */ + sleep(1000); + InsertInformation insertInformation = null; synchronized (sone) { - modificationCounter = sone.getModificationCounter(); - if (modificationCounter > 0) { - sone.setTime(System.currentTimeMillis()); + if (sone.getModificationCounter() > modificationCounter) { + modificationCounter = sone.getModificationCounter(); + lastModificationTime = System.currentTimeMillis(); + sone.setTime(lastModificationTime); + logger.log(Level.FINE, "Sone %s has been modified, waiting 60 seconds before inserting.", new Object[] { sone.getName() }); + } + if ((lastModificationTime > 0) && ((System.currentTimeMillis() - lastModificationTime) > (60 * 1000))) { insertInformation = new InsertInformation(sone); } } + if (insertInformation != null) { logger.log(Level.INFO, "Inserting Sone “%s”…", new Object[] { sone.getName() }); @@ -144,9 +147,8 @@ public class SoneInserter extends AbstractService { if (sone.getModificationCounter() == modificationCounter) { logger.log(Level.FINE, "Sone “%s” was not modified further, resetting counter…", new Object[] { sone }); sone.setModificationCounter(0); - } else { - logger.log(Level.FINE, "Sone “%s” was modified since the insert started, starting another insert…", new Object[] { sone }); - restartNow = true; + modificationCounter = 0; + lastModificationTime = 0; } } } @@ -182,6 +184,8 @@ public class SoneInserter extends AbstractService { soneProperties.put("posts", new ArrayList(sone.getPosts())); soneProperties.put("replies", new HashSet(sone.getReplies())); soneProperties.put("blockedSoneIds", new HashSet(sone.getBlockedSoneIds())); + soneProperties.put("likedPostIds", new HashSet(sone.getLikedPostIds())); + soneProperties.put("likeReplyIds", new HashSet(sone.getLikedReplyIds())); } //