@@ -26,8 +26,9 @@ class Configuration:
2626
2727 Worker Properties (via environment variables):
2828 ----------------------------------------------
29- CONDUCTOR_WORKER_POLLING_INTERVAL: Default polling interval in seconds
3029 CONDUCTOR_WORKER_DOMAIN: Default worker domain
30+ CONDUCTOR_WORKER_POLL_INTERVAL: Polling interval in milliseconds (default: 100)
31+ CONDUCTOR_WORKER_POLL_INTERVAL_SECONDS: Polling interval in seconds (default: 0)
3132 CONDUCTOR_WORKER_<TASK_TYPE>_POLLING_INTERVAL: Task-specific polling interval
3233 CONDUCTOR_WORKER_<TASK_TYPE>_DOMAIN: Task-specific domain
3334
@@ -57,8 +58,9 @@ def __init__(
5758 auth_secret : Optional [str ] = None ,
5859 debug : bool = False ,
5960 # Worker properties
60- default_polling_interval : Optional [float ] = None ,
61- default_domain : Optional [str ] = None ,
61+ poll_interval : Optional [int ] = None ,
62+ domain : Optional [str ] = None ,
63+ poll_interval_seconds : Optional [int ] = None ,
6264 # HTTP Configuration parameters
6365 api_key : Optional [Dict [str , str ]] = None ,
6466 api_key_prefix : Optional [Dict [str , str ]] = None ,
@@ -88,10 +90,12 @@ def __init__(
8890 Authentication key secret. If not provided, reads from CONDUCTOR_AUTH_SECRET env var.
8991 debug : bool, optional
9092 Enable debug logging. Default is False.
91- default_polling_interval : float, optional
92- Default polling interval for workers in seconds.
93- default_domain : str, optional
94- Default domain for workers.
93+ poll_interval : int, optional
94+ Polling interval in milliseconds. If not provided, reads from CONDUCTOR_WORKER_POLL_INTERVAL env var.
95+ domain : str, optional
96+ Worker domain. If not provided, reads from CONDUCTOR_WORKER_DOMAIN env var.
97+ poll_interval_seconds : int, optional
98+ Polling interval in seconds. If not provided, reads from CONDUCTOR_WORKER_POLL_INTERVAL_SECONDS env var.
9599 **kwargs : Any
96100 Additional parameters passed to HttpConfiguration.
97101 """
@@ -116,11 +120,10 @@ def __init__(
116120 else :
117121 self .auth_secret = os .getenv ("CONDUCTOR_AUTH_SECRET" )
118122
119- # Worker properties with environment variable fallback
120- self .default_polling_interval = default_polling_interval or self ._get_env_float (
121- "CONDUCTOR_WORKER_POLLING_INTERVAL" , 1.0
122- )
123- self .default_domain = default_domain or os .getenv ("CONDUCTOR_WORKER_DOMAIN" )
123+ # Additional worker properties with environment variable fallback
124+ self .poll_interval = poll_interval or self ._get_env_int ("CONDUCTOR_WORKER_POLL_INTERVAL" , 100 )
125+ self .domain = domain or os .getenv ("CONDUCTOR_WORKER_DOMAIN" , "default_domain" )
126+ self .poll_interval_seconds = poll_interval_seconds or self ._get_env_int ("CONDUCTOR_WORKER_POLL_INTERVAL_SECONDS" , 0 )
124127
125128 # Store additional worker properties
126129 self ._worker_properties : Dict [str , Dict [str , Any ]] = {}
@@ -234,10 +237,12 @@ def get_worker_property_value(
234237 return self ._convert_property_value (property_name , value )
235238
236239 # Return default value
237- if property_name == "polling_interval" :
238- return self .default_polling_interval
239240 elif property_name == "domain" :
240- return self .default_domain
241+ return self .domain
242+ elif property_name == "poll_interval" :
243+ return self .poll_interval
244+ elif property_name == "poll_interval_seconds" :
245+ return self .poll_interval_seconds
241246
242247 return None
243248
@@ -247,8 +252,14 @@ def _convert_property_value(self, property_name: str, value: str) -> Any:
247252 try :
248253 return float (value )
249254 except (ValueError , TypeError ):
250- self .logger .warning ("Invalid polling_interval value: %s" , value )
251- return self .default_polling_interval
255+ self .logger .warning ("Invalid poll_interval value: %s" , value )
256+ return self .poll_interval
257+ elif property_name == "poll_interval_seconds" :
258+ try :
259+ return float (value )
260+ except (ValueError , TypeError ):
261+ self .logger .warning ("Invalid poll_interval_seconds value: %s" , value )
262+ return self .poll_interval_seconds
252263
253264 # For other properties, return as string
254265 return value
@@ -325,6 +336,37 @@ def get_domain(self, task_type: Optional[str] = None) -> Optional[str]:
325336 """
326337 return self .get_worker_property_value ("domain" , task_type )
327338
339+ def get_poll_interval (self , task_type : Optional [str ] = None ) -> int :
340+ """
341+ Get polling interval in milliseconds for a task type with environment variable support.
342+
343+ Parameters:
344+ -----------
345+ task_type : str, optional
346+ Task type for task-specific configuration
347+
348+ Returns:
349+ --------
350+ int
351+ Polling interval in milliseconds
352+ """
353+ if task_type :
354+ value = self .get_worker_property_value ("poll_interval" , task_type )
355+ if value is not None :
356+ return int (value )
357+ return self .poll_interval
358+
359+ def get_poll_interval_seconds (self ) -> int :
360+ """
361+ Get polling interval in seconds.
362+
363+ Returns:
364+ --------
365+ int
366+ Polling interval in seconds
367+ """
368+ return self .poll_interval_seconds
369+
328370 # Properties for commonly used HTTP configuration attributes
329371 @property
330372 def host (self ) -> str :
0 commit comments