@@ -351,8 +351,20 @@ export interface WorkerStatus {
351
351
numInFlightWorkflowActivations : number ;
352
352
/**
353
353
* Number of in-flight (currently actively processed) Activities
354
+ *
355
+ * This includes both local and non-local Activities.
356
+ *
357
+ * See {@link numInFlightNonLocalActivities} and {@link numInFlightLocalActivities} for a breakdown.
354
358
*/
355
359
numInFlightActivities : number ;
360
+ /**
361
+ * Number of in-flight (currently actively processed) non-Local Activities
362
+ */
363
+ numInFlightNonLocalActivities : number ;
364
+ /**
365
+ * Number of in-flight (currently actively processed) Local Activities
366
+ */
367
+ numInFlightLocalActivities : number ;
356
368
/**
357
369
* Number of Workflow executions cached in Worker memory
358
370
*/
@@ -437,6 +449,8 @@ export class Worker {
437
449
438
450
protected readonly numInFlightActivationsSubject = new BehaviorSubject < number > ( 0 ) ;
439
451
protected readonly numInFlightActivitiesSubject = new BehaviorSubject < number > ( 0 ) ;
452
+ protected readonly numInFlightNonLocalActivitiesSubject = new BehaviorSubject < number > ( 0 ) ;
453
+ protected readonly numInFlightLocalActivitiesSubject = new BehaviorSubject < number > ( 0 ) ;
440
454
protected readonly numCachedWorkflowsSubject = new BehaviorSubject < number > ( 0 ) ;
441
455
protected readonly numHeartbeatingActivitiesSubject = new BehaviorSubject < number > ( 0 ) ;
442
456
protected readonly evictionsEmitter = new EventEmitter ( ) ;
@@ -769,6 +783,8 @@ export class Worker {
769
783
numCachedWorkflows : this . numCachedWorkflowsSubject . value ,
770
784
numInFlightWorkflowActivations : this . numInFlightActivationsSubject . value ,
771
785
numInFlightActivities : this . numInFlightActivitiesSubject . value ,
786
+ numInFlightNonLocalActivities : this . numInFlightNonLocalActivitiesSubject . value ,
787
+ numInFlightLocalActivities : this . numInFlightLocalActivitiesSubject . value ,
772
788
} ;
773
789
}
774
790
@@ -1021,12 +1037,17 @@ export class Worker {
1021
1037
1022
1038
let result ;
1023
1039
1040
+ const numInFlightBreakdownSubject = output . activity . info . isLocal
1041
+ ? this . numInFlightLocalActivitiesSubject
1042
+ : this . numInFlightNonLocalActivitiesSubject ;
1043
+
1024
1044
this . numInFlightActivitiesSubject . next ( this . numInFlightActivitiesSubject . value + 1 ) ;
1045
+ numInFlightBreakdownSubject . next ( numInFlightBreakdownSubject . value + 1 ) ;
1025
1046
try {
1026
1047
result = await output . activity . run ( output . input ) ;
1027
1048
} finally {
1049
+ numInFlightBreakdownSubject . next ( numInFlightBreakdownSubject . value - 1 ) ;
1028
1050
this . numInFlightActivitiesSubject . next ( this . numInFlightActivitiesSubject . value - 1 ) ;
1029
- group$ . close ( ) ;
1030
1051
}
1031
1052
const status = result . failed ? 'failed' : result . completed ? 'completed' : 'cancelled' ;
1032
1053
@@ -1060,7 +1081,12 @@ export class Worker {
1060
1081
return { taskToken, result } ;
1061
1082
} ) ,
1062
1083
filter ( < T > ( result : T ) : result is Exclude < T , undefined > => result !== undefined ) ,
1063
- map ( ( rest ) => coresdk . ActivityTaskCompletion . encodeDelimited ( rest ) . finish ( ) )
1084
+ map ( ( rest ) => coresdk . ActivityTaskCompletion . encodeDelimited ( rest ) . finish ( ) ) ,
1085
+ tap ( {
1086
+ next : ( ) => {
1087
+ group$ . close ( ) ;
1088
+ } ,
1089
+ } )
1064
1090
) ;
1065
1091
} )
1066
1092
) ;
0 commit comments