diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/Priority.java b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/Priority.java
index c6d4324a0..ba92c23b8 100644
--- a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/Priority.java
+++ b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/Priority.java
@@ -19,11 +19,42 @@
/**
* Priority related
+ *
The {@link #getPriority()} is optional and represents a priority value as defined in the
+ * {@link Priority} interface. Lower values have higher priority. The default value is
+ * {@code Priority.LOWEST_PRECEDENCE}, indicating the lowest priority (losing to any
+ * other specified priority value).
*
* @author KamTo Hung
+ * @since 1.1.7
*/
public interface Priority {
+ /**
+ * Useful constant for the highest precedence value.
+ *
+ * @see java.lang.Integer#MIN_VALUE
+ */
+ int HIGHEST_PRECEDENCE = Integer.MIN_VALUE;
+
+ /**
+ * Useful constant for the lowest precedence value.
+ *
+ * @see java.lang.Integer#MAX_VALUE
+ */
+ int LOWEST_PRECEDENCE = Integer.MAX_VALUE;
+
+ /**
+ * Get the priority value of this object.
+ *
Higher values are interpreted as lower priority. As a consequence,
+ * the object with the lowest value has the highest priority (somewhat
+ * analogous to Servlet {@code load-on-startup} values).
+ *
Same priority values will result in arbitrary sort positions for the
+ * affected objects.
+ *
+ * @return the priority value
+ * @see #HIGHEST_PRECEDENCE
+ * @see #LOWEST_PRECEDENCE
+ */
int getPriority();
}
diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityCallable.java b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityCallable.java
index 05a96d7c0..703f5a188 100644
--- a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityCallable.java
+++ b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityCallable.java
@@ -25,6 +25,7 @@
* PriorityCallable related
*
* @author KamTo Hung
+ * @since 1.1.7
*/
public class PriorityCallable implements Priority, Callable {
diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityDtpExecutor.java b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityDtpExecutor.java
index 750cbf08d..3f664779c 100644
--- a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityDtpExecutor.java
+++ b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityDtpExecutor.java
@@ -35,15 +35,11 @@
* PriorityDtpExecutor related, extending DtpExecutor, implements priority feature
*
* @author KamTo Hung
+ * @since 1.1.7
*/
@Slf4j
public class PriorityDtpExecutor extends DtpExecutor {
- /**
- * The default priority.
- */
- private static final int DEFAULT_PRIORITY = 0;
-
public PriorityDtpExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
@@ -133,7 +129,7 @@ public void execute(Runnable command, int priority) {
@Override
public Future> submit(Runnable task) {
- return super.submit(PriorityRunnable.of(task, DEFAULT_PRIORITY));
+ return super.submit(PriorityRunnable.of(task, Priority.LOWEST_PRECEDENCE));
}
public Future> submit(Runnable task, int priority) {
@@ -142,7 +138,7 @@ public Future> submit(Runnable task, int priority) {
@Override
public Future submit(Runnable task, T result) {
- return super.submit(PriorityRunnable.of(task, DEFAULT_PRIORITY), result);
+ return super.submit(PriorityRunnable.of(task, Priority.LOWEST_PRECEDENCE), result);
}
public Future submit(Runnable task, T result, int priority) {
@@ -151,7 +147,7 @@ public Future submit(Runnable task, T result, int priority) {
@Override
public Future submit(Callable task) {
- return super.submit(PriorityCallable.of(task, DEFAULT_PRIORITY));
+ return super.submit(PriorityCallable.of(task, Priority.LOWEST_PRECEDENCE));
}
public Future submit(Callable task, int priority) {
diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityFutureTask.java b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityFutureTask.java
index 6ca7e0a35..523451839 100644
--- a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityFutureTask.java
+++ b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityFutureTask.java
@@ -24,6 +24,7 @@
* PriorityFutureTask related
*
* @author KamTo Hung
+ * @since 1.1.7
*/
public class PriorityFutureTask extends FutureTask implements Priority {
diff --git a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityRunnable.java b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityRunnable.java
index 5682d0f3e..75a6817b1 100644
--- a/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityRunnable.java
+++ b/core/src/main/java/org/dromara/dynamictp/core/executor/priority/PriorityRunnable.java
@@ -23,6 +23,7 @@
* PriorityRunnable related
*
* @author KamTo Hung
+ * @since 1.1.7
*/
public class PriorityRunnable implements Priority, Runnable {