@@ -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+ polling_interval : Optional [int ] = None ,
62+ domain : Optional [str ] = None ,
63+ polling_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+ polling_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+ polling_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,14 @@ 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
123+ # Additional worker properties with environment variable fallback
124+ self .polling_interval = polling_interval or self ._get_env_int (
125+ "CONDUCTOR_WORKER_POLL_INTERVAL" , 100
126+ )
127+ self .domain = domain or os .getenv ("CONDUCTOR_WORKER_DOMAIN" , "default_domain" )
128+ self .polling_interval_seconds = polling_interval_seconds or self ._get_env_int (
129+ "CONDUCTOR_WORKER_POLL_INTERVAL_SECONDS" , 0
122130 )
123- self .default_domain = default_domain or os .getenv ("CONDUCTOR_WORKER_DOMAIN" )
124131
125132 # Store additional worker properties
126133 self ._worker_properties : Dict [str , Dict [str , Any ]] = {}
@@ -234,10 +241,12 @@ def get_worker_property_value(
234241 return self ._convert_property_value (property_name , value )
235242
236243 # Return default value
237- if property_name == "polling_interval" :
238- return self .default_polling_interval
239244 elif property_name == "domain" :
240- return self .default_domain
245+ return self .domain
246+ elif property_name == "polling_interval" :
247+ return self .polling_interval
248+ elif property_name == "poll_interval_seconds" :
249+ return self .polling_interval_seconds
241250
242251 return None
243252
@@ -248,7 +257,13 @@ def _convert_property_value(self, property_name: str, value: str) -> Any:
248257 return float (value )
249258 except (ValueError , TypeError ):
250259 self .logger .warning ("Invalid polling_interval value: %s" , value )
251- return self .default_polling_interval
260+ return self .polling_interval
261+ elif property_name == "polling_interval_seconds" :
262+ try :
263+ return float (value )
264+ except (ValueError , TypeError ):
265+ self .logger .warning ("Invalid polling_interval_seconds value: %s" , value )
266+ return self .polling_interval_seconds
252267
253268 # For other properties, return as string
254269 return value
@@ -325,6 +340,37 @@ def get_domain(self, task_type: Optional[str] = None) -> Optional[str]:
325340 """
326341 return self .get_worker_property_value ("domain" , task_type )
327342
343+ def get_poll_interval (self , task_type : Optional [str ] = None ) -> int :
344+ """
345+ Get polling interval in milliseconds for a task type with environment variable support.
346+
347+ Parameters:
348+ -----------
349+ task_type : str, optional
350+ Task type for task-specific configuration
351+
352+ Returns:
353+ --------
354+ int
355+ Polling interval in milliseconds
356+ """
357+ if task_type :
358+ value = self .get_worker_property_value ("polling_interval" , task_type )
359+ if value is not None :
360+ return int (value )
361+ return self .polling_interval
362+
363+ def get_poll_interval_seconds (self ) -> int :
364+ """
365+ Get polling interval in seconds.
366+
367+ Returns:
368+ --------
369+ int
370+ Polling interval in seconds
371+ """
372+ return self .polling_interval_seconds
373+
328374 # Properties for commonly used HTTP configuration attributes
329375 @property
330376 def host (self ) -> str :
0 commit comments