@@ -126,6 +126,7 @@ public class GobblinTemporalTaskRunner implements StandardMetricsBridge {
126126 private final boolean isMetricReportingFailureFatal ;
127127 private final boolean isEventReportingFailureFatal ;
128128 private final List <TemporalWorker > workers ;
129+ private final WorkflowServiceStubs workflowServiceStubs ;
129130
130131 public GobblinTemporalTaskRunner (String applicationName ,
131132 String applicationId ,
@@ -163,6 +164,9 @@ public GobblinTemporalTaskRunner(String applicationName,
163164 ConfigurationKeys .DEFAULT_GOBBLIN_TASK_EVENT_REPORTING_FAILURE_FATAL );
164165 this .workers = new ArrayList <>();
165166
167+ String connectionUri = clusterConfig .getString (GobblinTemporalConfigurationKeys .TEMPORAL_CONNECTION_STRING );
168+ this .workflowServiceStubs = TemporalWorkflowClientFactory .createServiceInstance (connectionUri );
169+
166170 logger .info ("GobblinTaskRunner({}): applicationName {}, applicationId {}, taskRunnerId {}, config {}, appWorkDir {}" ,
167171 this .isTaskDriver ? "taskDriver" : "worker" ,
168172 applicationName ,
@@ -241,12 +245,9 @@ public void start()
241245 private TemporalWorker initiateWorker () throws Exception {
242246 logger .info ("Starting Temporal Worker" );
243247
244- String connectionUri = clusterConfig .getString (GobblinTemporalConfigurationKeys .TEMPORAL_CONNECTION_STRING );
245- WorkflowServiceStubs service = TemporalWorkflowClientFactory .createServiceInstance (connectionUri );
246-
247248 String namespace = ConfigUtils .getString (clusterConfig , GobblinTemporalConfigurationKeys .GOBBLIN_TEMPORAL_NAMESPACE ,
248249 GobblinTemporalConfigurationKeys .DEFAULT_GOBBLIN_TEMPORAL_NAMESPACE );
249- WorkflowClient client = TemporalWorkflowClientFactory .createClientInstance (service , namespace );
250+ WorkflowClient client = TemporalWorkflowClientFactory .createClientInstance (workflowServiceStubs , namespace );
250251
251252 String workerClassName = ConfigUtils .getString (clusterConfig ,
252253 GobblinTemporalConfigurationKeys .WORKER_CLASS , GobblinTemporalConfigurationKeys .DEFAULT_WORKER_CLASS );
@@ -292,6 +293,12 @@ public synchronized void stop() {
292293 this .containerMetrics .get ().stopMetricsReporting ();
293294 }
294295
296+ try {
297+ this .workflowServiceStubs .getOptions ().getMetricsScope ().close ();
298+ } catch (Exception e ) {
299+ logger .error ("Exception occurred while closing MetricsScope" , e );
300+ }
301+
295302 workers .forEach (TemporalWorker ::shutdown );
296303
297304 logger .info ("All services are stopped." );
0 commit comments