@@ -59,12 +59,13 @@ pub struct Runtime {
5959pub fn runtime_new (
6060 bridge_options : config:: RuntimeOptions ,
6161) -> BridgeResult < OpaqueOutboundHandle < Runtime > > {
62- let ( telemetry_options, metrics_options, logging_options) = bridge_options. try_into ( ) ?;
62+ let ( telemetry_options, metrics_options, logging_options, worker_heartbeat_interval_millis) =
63+ bridge_options. try_into ( ) ?;
6364
6465 // Create core runtime which starts tokio multi-thread runtime
6566 let runtime_options = RuntimeOptionsBuilder :: default ( )
6667 . telemetry_options ( telemetry_options)
67- . heartbeat_interval ( None ) // TODO: change to pick up heartbeat_interval
68+ . heartbeat_interval ( worker_heartbeat_interval_millis . map ( Duration :: from_millis ) )
6869 . build ( )
6970 . context ( "Failed to build runtime options" ) ?;
7071 let mut core_runtime = CoreRuntime :: new ( runtime_options, TokioRuntimeBuilder :: default ( ) )
@@ -266,6 +267,7 @@ mod config {
266267 log_exporter : LogExporterOptions ,
267268 telemetry : TelemetryOptions ,
268269 metrics_exporter : Option < MetricsExporterOptions > ,
270+ worker_heartbeat_interval_millis : Option < u64 > ,
269271 }
270272
271273 #[ derive( Debug , Clone , TryFromJs ) ]
@@ -322,6 +324,7 @@ mod config {
322324 CoreTelemetryOptions ,
323325 Option < super :: BridgeMetricsExporter > ,
324326 super :: BridgeLogExporter ,
327+ Option < u64 > ,
325328 ) > for RuntimeOptions
326329 {
327330 type Error = BridgeError ;
@@ -331,8 +334,16 @@ mod config {
331334 CoreTelemetryOptions ,
332335 Option < super :: BridgeMetricsExporter > ,
333336 super :: BridgeLogExporter ,
337+ Option < u64 > ,
334338 ) > {
335- let ( telemetry_logger, log_exporter) = match self . log_exporter {
339+ let Self {
340+ log_exporter,
341+ telemetry,
342+ metrics_exporter,
343+ worker_heartbeat_interval_millis,
344+ } = self ;
345+
346+ let ( telemetry_logger, log_exporter) = match log_exporter {
336347 LogExporterOptions :: Console { filter } => (
337348 CoreTelemetryLogger :: Console { filter } ,
338349 BridgeLogExporter :: Console ,
@@ -352,17 +363,21 @@ mod config {
352363 let mut telemetry_options = TelemetryOptionsBuilder :: default ( ) ;
353364 let telemetry_options = telemetry_options
354365 . logging ( telemetry_logger)
355- . metric_prefix ( self . telemetry . metric_prefix )
356- . attach_service_name ( self . telemetry . attach_service_name )
366+ . metric_prefix ( telemetry. metric_prefix )
367+ . attach_service_name ( telemetry. attach_service_name )
357368 . build ( )
358369 . context ( "Failed to build telemetry options" ) ?;
359370
360- let metrics_exporter = self
361- . metrics_exporter
371+ let metrics_exporter = metrics_exporter
362372 . map ( std:: convert:: TryInto :: try_into)
363373 . transpose ( ) ?;
364374
365- Ok ( ( telemetry_options, metrics_exporter, log_exporter) )
375+ Ok ( (
376+ telemetry_options,
377+ metrics_exporter,
378+ log_exporter,
379+ worker_heartbeat_interval_millis,
380+ ) )
366381 }
367382 }
368383
0 commit comments