syncope-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From giacom...@apache.org
Subject [1/2] syncope git commit: [SYNCOPE-660]Forcing interrupt for heavy tasks - minor improvement
Date Mon, 22 Jun 2015 14:49:06 GMT
Repository: syncope
Updated Branches:
  refs/heads/master 0ae4ac8e9 -> b13e9fe4d


[SYNCOPE-660]Forcing interrupt for heavy tasks - minor improvement


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/bdb3257c
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/bdb3257c
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/bdb3257c

Branch: refs/heads/master
Commit: bdb3257c8f227716fe52d950aa6626e9bab84478
Parents: fed10a7
Author: giacomolm <giacomolm@hotmail.it>
Authored: Mon Jun 22 16:14:10 2015 +0200
Committer: giacomolm <giacomolm@hotmail.it>
Committed: Mon Jun 22 16:14:10 2015 +0200

----------------------------------------------------------------------
 .../syncope/core/quartz/AbstractTaskJob.java    | 29 +++++++++-----------
 1 file changed, 13 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/bdb3257c/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java b/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java
index 52615ae..2fcef9e 100644
--- a/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java
+++ b/core/src/main/java/org/apache/syncope/core/quartz/AbstractTaskJob.java
@@ -18,11 +18,8 @@
  */
 package org.apache.syncope.core.quartz;
 
-import java.text.SimpleDateFormat;
 import java.util.Date;
-import java.util.Locale;
 import java.util.concurrent.atomic.AtomicReference;
-import org.apache.syncope.common.SyncopeConstants;
 import org.apache.syncope.common.types.AuditElements;
 import org.apache.syncope.common.types.AuditElements.Result;
 import org.apache.syncope.core.audit.AuditManager;
@@ -32,6 +29,7 @@ import org.apache.syncope.core.persistence.beans.TaskExec;
 import org.apache.syncope.core.persistence.dao.ConfDAO;
 import org.apache.syncope.core.persistence.dao.TaskDAO;
 import org.apache.syncope.core.persistence.dao.TaskExecDAO;
+import org.apache.syncope.core.util.DataFormat;
 import org.apache.syncope.core.util.ExceptionUtil;
 import org.quartz.DisallowConcurrentExecution;
 import org.quartz.JobExecutionContext;
@@ -197,20 +195,19 @@ public abstract class AbstractTaskJob implements TaskJob {
     @Override
     public void interrupt() throws UnableToInterruptJobException {
         Thread thread = this.runningThread.getAndSet(null);
-        if (thread != null) {
-            LOG.info("Interrupting job time {} ", (new SimpleDateFormat(SyncopeConstants.DEFAULT_DATE_PATTERN,
Locale.
-                    getDefault())).format(new Date()));
-            thread.interrupt();
-            if (thread.isAlive()) {                
-                long maxRetry = confDAO.find("tasks.interruptMaxRetries", "0").getValues().get(0).getLongValue();
-                for (int i = 0; i <= maxRetry && thread.isAlive(); i++) {
-                    thread.interrupt();
-                }
-                //if the thread is still alive, it should be available in the next stop
-                if(thread.isAlive()) this.runningThread.set(thread);
-            }
+        if (thread == null) {
+            LOG.warn("Unable to retrieve the thread of the current job execution");
         } else {
-            LOG.warn("Unable to retrieve the right thread related to the current job execution");
+            LOG.info("Interrupting job from thread {} at {} ", thread.getId(), DataFormat.format(new
Date()));
+
+            long maxRetry = confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue();
+            for (int i = 0; i < maxRetry && thread.isAlive(); i++) {
+                thread.interrupt();
+            }
+            // if the thread is still alive, it should be available in the next stop
+            if (thread.isAlive()) {
+                this.runningThread.set(thread);
+            }
         }
     }
 }


Mime
View raw message