@@ -73,7 +73,8 @@ def _run_async_worker_process(
7373def register_decorated_fn (name : str , poll_interval : int , domain : str , worker_id : str , func ,
7474 thread_count : int = 1 , register_task_def : bool = False ,
7575 poll_timeout : int = 100 , lease_extend_enabled : bool = False , task_def : Optional ['TaskDef' ] = None ,
76- overwrite_task_def : bool = True , strict_schema : bool = False ):
76+ overwrite_task_def : bool = True , strict_schema : bool = False ,
77+ register_schema : Optional [bool ] = None ):
7778 logger .debug ("decorated %s" , name )
7879 _decorated_functions [(name , domain )] = {
7980 "func" : func ,
@@ -86,7 +87,8 @@ def register_decorated_fn(name: str, poll_interval: int, domain: str, worker_id:
8687 "lease_extend_enabled" : lease_extend_enabled ,
8788 "task_def" : task_def ,
8889 "overwrite_task_def" : overwrite_task_def ,
89- "strict_schema" : strict_schema
90+ "strict_schema" : strict_schema ,
91+ "register_schema" : register_schema
9092 }
9193
9294
@@ -112,7 +114,8 @@ def get_registered_workers() -> List[Worker]:
112114 paused = False , # Always default to False, only env vars can set to True
113115 task_def_template = record .get ("task_def" ), # Optional TaskDef configuration
114116 overwrite_task_def = record .get ("overwrite_task_def" , True ),
115- strict_schema = record .get ("strict_schema" , False )
117+ strict_schema = record .get ("strict_schema" , False ),
118+ register_schema = record .get ("register_schema" ) if record .get ("register_schema" ) is not None else False
116119 )
117120 workers .append (worker )
118121 return workers
@@ -254,9 +257,15 @@ def __init__(
254257 'poll_timeout' : record .get ("poll_timeout" , 100 ),
255258 'lease_extend_enabled' : record .get ("lease_extend_enabled" , True ),
256259 'overwrite_task_def' : record .get ("overwrite_task_def" , True ),
257- 'strict_schema' : record .get ("strict_schema" , False )
260+ 'strict_schema' : record .get ("strict_schema" , False ),
261+ 'register_schema' : record .get ("register_schema" )
258262 }
259263
264+ # Apply global Configuration.register_schema as fallback when
265+ # the decorator doesn't set it explicitly (None).
266+ if code_config ['register_schema' ] is None and hasattr (configuration , 'register_schema' ) and configuration .register_schema is not None :
267+ code_config ['register_schema' ] = configuration .register_schema
268+
260269 # Resolve configuration with environment variable overrides
261270 resolved_config = resolve_worker_config (
262271 worker_name = task_def_name ,
@@ -275,7 +284,8 @@ def __init__(
275284 lease_extend_enabled = resolved_config ['lease_extend_enabled' ],
276285 task_def_template = record .get ("task_def" ), # Pass TaskDef configuration
277286 overwrite_task_def = resolved_config .get ('overwrite_task_def' , True ),
278- strict_schema = resolved_config .get ('strict_schema' , False ))
287+ strict_schema = resolved_config .get ('strict_schema' , False ),
288+ register_schema = resolved_config .get ('register_schema' , False ))
279289 logger .debug ("created worker with name=%s and domain=%s" , task_def_name , resolved_config ['domain' ])
280290 workers .append (worker )
281291
0 commit comments