You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2017/05/02 09:35:17 UTC
svn commit: r1793452 - in
/sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl:
QuartzJobExecutor.java WebConsolePrinter.java
Author: cziegeler
Date: Tue May 2 09:35:16 2017
New Revision: 1793452
URL: http://svn.apache.org/viewvc?rev=1793452&view=rev
Log:
SLING-5387 : Provide support for running singleton jobs on non leader cluster nodes also
Modified:
sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzJobExecutor.java
sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/WebConsolePrinter.java
Modified: sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzJobExecutor.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzJobExecutor.java?rev=1793452&r1=1793451&r2=1793452&view=diff
==============================================================================
--- sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzJobExecutor.java (original)
+++ sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzJobExecutor.java Tue May 2 09:35:16 2017
@@ -106,7 +106,10 @@ public class QuartzJobExecutor implement
return runOn != null && runOn.length == 1 && Scheduler.VALUE_RUN_ON_SINGLE.equals(runOn[0]);
}
- public boolean shouldRunAsSingle() {
+ public String shouldRunAsSingleOn() {
+ if ( !isRunOnSingle() ) {
+ return null;
+ }
final String[] ids = QuartzJobExecutor.SLING_IDS.get();
boolean schedule = false;
if ( ids != null ) {
@@ -120,12 +123,13 @@ public class QuartzJobExecutor implement
// although this should never happen (MD5 and UTF-8 are always available) we consider
// this an error case
LoggerFactory.getLogger(getClass().getName()).error("Unable to distribute scheduled " + this, ex);
- return false;
+ return "";
}
final String myId = SLING_ID;
schedule = myId != null && myId.equals(ids[index]);
+ return schedule ? null : ids[index];
}
- return schedule;
+ return "";
}
}
@@ -175,7 +179,7 @@ public class QuartzJobExecutor implement
if ( myId == null ) {
return false;
}
- if ( !desc.shouldRunAsSingle() ) {
+ if ( desc.shouldRunAsSingleOn() != null ) {
logger.debug("Excluding {} - distributed to different Sling instance", desc);
return false;
}
Modified: sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/WebConsolePrinter.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/WebConsolePrinter.java?rev=1793452&r1=1793451&r2=1793452&view=diff
==============================================================================
--- sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/WebConsolePrinter.java (original)
+++ sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/WebConsolePrinter.java Tue May 2 09:35:16 2017
@@ -107,8 +107,11 @@ public class WebConsolePrinter {
pw.print(" (inactive: not leader)");
}
} else {
- if ( !desc.shouldRunAsSingle() ) {
- pw.print(" (inactive: single distributed elsewhere)");
+ final String id = desc.shouldRunAsSingleOn();
+ if ( id != null ) {
+ pw.print(" (inactive: single distributed elsewhere ");
+ pw.print(id);
+ pw.print(")");
}
}
} else {