44
55import com .google .common .base .Preconditions ;
66import io .temporal .common .Experimental ;
7+ import io .temporal .internal .Config ;
78import io .temporal .serviceclient .WorkflowServiceStubsOptions ;
89import io .temporal .worker .tuning .*;
910import java .time .Duration ;
@@ -64,7 +65,7 @@ public static final class Builder {
6465 private Duration defaultHeartbeatThrottleInterval ;
6566 private Duration stickyQueueScheduleToStartTimeout ;
6667 private boolean disableEagerExecution ;
67- private int maxConcurrentEagerActivityExecutionSize ;
68+ private int maxEagerActivityReservationsPerWorkflowTask = Config . EAGER_ACTIVITIES_LIMIT ;
6869 private String buildId ;
6970 private boolean useBuildIdForVersioning ;
7071 private Duration stickyTaskQueueDrainTimeout ;
@@ -110,7 +111,8 @@ private Builder(WorkerOptions o) {
110111 this .defaultHeartbeatThrottleInterval = o .defaultHeartbeatThrottleInterval ;
111112 this .stickyQueueScheduleToStartTimeout = o .stickyQueueScheduleToStartTimeout ;
112113 this .disableEagerExecution = o .disableEagerExecution ;
113- this .maxConcurrentEagerActivityExecutionSize = o .maxConcurrentEagerActivityExecutionSize ;
114+ this .maxEagerActivityReservationsPerWorkflowTask =
115+ o .maxEagerActivityReservationsPerWorkflowTask ;
114116 this .useBuildIdForVersioning = o .useBuildIdForVersioning ;
115117 this .buildId = o .buildId ;
116118 this .stickyTaskQueueDrainTimeout = o .stickyTaskQueueDrainTimeout ;
@@ -403,15 +405,15 @@ public Builder setDisableEagerExecution(boolean disableEagerExecution) {
403405 }
404406
405407 /**
406- * Sets the maximum number of eager activities that can be running concurrently.
408+ * Sets the maximum number of activity slots that may be reserved for eager execution when
409+ * completing a workflow task.
407410 *
408- * <p>When nonzero, eager activity execution will not be requested if it would cause the number
409- * of running eager activities to exceed this value. The default of zero means unlimited and
410- * therefore only bound by the activity slot supplier.
411+ * <p>The default is 3. Setting this to zero disables eager activity execution.
411412 */
412- public Builder setMaxConcurrentEagerActivityExecutionSize (
413- int maxConcurrentEagerActivityExecutionSize ) {
414- this .maxConcurrentEagerActivityExecutionSize = maxConcurrentEagerActivityExecutionSize ;
413+ public Builder setMaxEagerActivityReservationsPerWorkflowTask (
414+ int maxEagerActivityReservationsPerWorkflowTask ) {
415+ this .maxEagerActivityReservationsPerWorkflowTask =
416+ maxEagerActivityReservationsPerWorkflowTask ;
415417 return this ;
416418 }
417419
@@ -638,7 +640,7 @@ public WorkerOptions build() {
638640 defaultHeartbeatThrottleInterval ,
639641 stickyQueueScheduleToStartTimeout ,
640642 disableEagerExecution ,
641- maxConcurrentEagerActivityExecutionSize ,
643+ maxEagerActivityReservationsPerWorkflowTask ,
642644 useBuildIdForVersioning ,
643645 buildId ,
644646 stickyTaskQueueDrainTimeout ,
@@ -664,8 +666,8 @@ public WorkerOptions validateAndBuildWithDefaults() {
664666 Preconditions .checkState (
665667 maxConcurrentActivityExecutionSize >= 0 , "negative maxConcurrentActivityExecutionSize" );
666668 Preconditions .checkState (
667- maxConcurrentEagerActivityExecutionSize >= 0 ,
668- "negative maxConcurrentEagerActivityExecutionSize " );
669+ maxEagerActivityReservationsPerWorkflowTask >= 0 ,
670+ "negative maxEagerActivityReservationsPerWorkflowTask " );
669671 Preconditions .checkState (
670672 maxConcurrentWorkflowTaskExecutionSize >= 0 ,
671673 "negative maxConcurrentWorkflowTaskExecutionSize" );
@@ -777,7 +779,7 @@ public WorkerOptions validateAndBuildWithDefaults() {
777779 ? DEFAULT_STICKY_SCHEDULE_TO_START_TIMEOUT
778780 : stickyQueueScheduleToStartTimeout ,
779781 disableEagerExecution ,
780- maxConcurrentEagerActivityExecutionSize ,
782+ maxEagerActivityReservationsPerWorkflowTask ,
781783 useBuildIdForVersioning ,
782784 buildId ,
783785 stickyTaskQueueDrainTimeout == null
@@ -816,7 +818,7 @@ public WorkerOptions validateAndBuildWithDefaults() {
816818 private final Duration defaultHeartbeatThrottleInterval ;
817819 private final @ Nonnull Duration stickyQueueScheduleToStartTimeout ;
818820 private final boolean disableEagerExecution ;
819- private final int maxConcurrentEagerActivityExecutionSize ;
821+ private final int maxEagerActivityReservationsPerWorkflowTask ;
820822 private final boolean useBuildIdForVersioning ;
821823 private final String buildId ;
822824 private final Duration stickyTaskQueueDrainTimeout ;
@@ -852,7 +854,7 @@ private WorkerOptions(
852854 Duration defaultHeartbeatThrottleInterval ,
853855 @ Nonnull Duration stickyQueueScheduleToStartTimeout ,
854856 boolean disableEagerExecution ,
855- int maxConcurrentEagerActivityExecutionSize ,
857+ int maxEagerActivityReservationsPerWorkflowTask ,
856858 boolean useBuildIdForVersioning ,
857859 String buildId ,
858860 Duration stickyTaskQueueDrainTimeout ,
@@ -886,7 +888,7 @@ private WorkerOptions(
886888 this .defaultHeartbeatThrottleInterval = defaultHeartbeatThrottleInterval ;
887889 this .stickyQueueScheduleToStartTimeout = stickyQueueScheduleToStartTimeout ;
888890 this .disableEagerExecution = maxTaskQueueActivitiesPerSecond > 0 ? true : disableEagerExecution ;
889- this .maxConcurrentEagerActivityExecutionSize = maxConcurrentEagerActivityExecutionSize ;
891+ this .maxEagerActivityReservationsPerWorkflowTask = maxEagerActivityReservationsPerWorkflowTask ;
890892 this .useBuildIdForVersioning = useBuildIdForVersioning ;
891893 this .buildId = buildId ;
892894 this .stickyTaskQueueDrainTimeout = stickyTaskQueueDrainTimeout ;
@@ -1012,8 +1014,8 @@ public boolean isEagerExecutionDisabled() {
10121014 return disableEagerExecution ;
10131015 }
10141016
1015- public int getMaxConcurrentEagerActivityExecutionSize () {
1016- return maxConcurrentEagerActivityExecutionSize ;
1017+ public int getMaxEagerActivityReservationsPerWorkflowTask () {
1018+ return maxEagerActivityReservationsPerWorkflowTask ;
10171019 }
10181020
10191021 public boolean isUsingBuildIdForVersioning () {
@@ -1097,7 +1099,8 @@ && compare(maxTaskQueueActivitiesPerSecond, that.maxTaskQueueActivitiesPerSecond
10971099 && localActivityWorkerOnly == that .localActivityWorkerOnly
10981100 && defaultDeadlockDetectionTimeout == that .defaultDeadlockDetectionTimeout
10991101 && disableEagerExecution == that .disableEagerExecution
1100- && maxConcurrentEagerActivityExecutionSize == that .maxConcurrentEagerActivityExecutionSize
1102+ && maxEagerActivityReservationsPerWorkflowTask
1103+ == that .maxEagerActivityReservationsPerWorkflowTask
11011104 && useBuildIdForVersioning == that .useBuildIdForVersioning
11021105 && Objects .equals (workerTuner , that .workerTuner )
11031106 && Objects .equals (maxHeartbeatThrottleInterval , that .maxHeartbeatThrottleInterval )
@@ -1137,7 +1140,7 @@ public int hashCode() {
11371140 defaultHeartbeatThrottleInterval ,
11381141 stickyQueueScheduleToStartTimeout ,
11391142 disableEagerExecution ,
1140- maxConcurrentEagerActivityExecutionSize ,
1143+ maxEagerActivityReservationsPerWorkflowTask ,
11411144 useBuildIdForVersioning ,
11421145 buildId ,
11431146 stickyTaskQueueDrainTimeout ,
@@ -1189,8 +1192,8 @@ public String toString() {
11891192 + stickyQueueScheduleToStartTimeout
11901193 + ", disableEagerExecution="
11911194 + disableEagerExecution
1192- + ", maxConcurrentEagerActivityExecutionSize ="
1193- + maxConcurrentEagerActivityExecutionSize
1195+ + ", maxEagerActivityReservationsPerWorkflowTask ="
1196+ + maxEagerActivityReservationsPerWorkflowTask
11941197 + ", useBuildIdForVersioning="
11951198 + useBuildIdForVersioning
11961199 + ", buildId='"
0 commit comments