OSDN Git Service

Rework some database logic to try and reduce the overhead with indexing & thumbnail...
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / threads / ThumbnailRunner.java
index 024ce6f..5e1b64c 100644 (file)
@@ -72,6 +72,7 @@ public class ThumbnailRunner extends QObject implements Runnable {
        private String                                                          guid;\r
        public  NoteSignal                                                      noteSignal;\r
        private boolean                                                         keepRunning;\r
+       public boolean                                                          interrupt;\r
        private final DatabaseConnection                        conn;\r
        private volatile LinkedBlockingQueue<String> workQueue;\r
        private static int                                                      MAX_QUEUED_WAITING = 1000;\r
@@ -97,6 +98,7 @@ public class ThumbnailRunner extends QObject implements Runnable {
                logger.log(logger.MEDIUM, "Starting thumbnail thread ");\r
                while (keepRunning) {\r
                        try {\r
+                               interrupt = false;\r
                                String work = workQueue.take();\r
                                if (work.startsWith("GENERATE")) {\r
                                        work = work.replace("GENERATE ", "");\r
@@ -104,7 +106,8 @@ public class ThumbnailRunner extends QObject implements Runnable {
                                        generateThumbnail();\r
                                }\r
                                if (work.startsWith("SCAN")) {\r
-                                       scanDatabase();\r
+                                       if (conn.getNoteTable().getThumbnailNeededCount() > 1)\r
+                                               scanDatabase();\r
                                }\r
                                if (work.startsWith("IMAGE")) {\r
                                        work = work.replace("IMAGE ", "");\r
@@ -174,7 +177,7 @@ public class ThumbnailRunner extends QObject implements Runnable {
                // Find a few records that need thumbnails\r
                List<String> guids = conn.getNoteTable().findThumbnailsNeeded();\r
                logger.log(logger.HIGH, guids.size() +" records returned");\r
-               for (int i=0; i<guids.size() && keepRunning; i++) {\r
+               for (int i=0; i<guids.size() && keepRunning && !interrupt; i++) {\r
                        guid = guids.get(i);\r
                        logger.log(logger.HIGH, "Working on:" +guids.get(i));\r
                        generateThumbnail();\r