@@ -49,15 +49,22 @@ def emulator_client() -> tasks_v2.CloudTasksClient:
49
49
host = os .getenv ("CLOUD_TASKS_EMULATOR_HOST" , "localhost" )
50
50
port = os .getenv ("CLOUD_TASKS_EMULATOR_PORT" , "8123" )
51
51
target = f"{ host } :{ port } "
52
- channel = grpc .insecure_channel (
53
- target ,
54
- options = [
55
- ('grpc.enable_http_proxy' , 0 ),
56
- ('grpc.enable_retries' , 0 ),
57
- ('grpc.max_receive_message_length' , - 1 ),
58
- ('grpc.max_send_message_length' , - 1 ),
59
- ('grpc.keepalive_time_ms' , 30000 ),
60
- ],
61
- )
52
+
53
+ # Configure DNS resolution for Docker networking
54
+ options = [
55
+ ('grpc.enable_http_proxy' , 0 ),
56
+ ('grpc.enable_retries' , 0 ),
57
+ ('grpc.max_receive_message_length' , - 1 ),
58
+ ('grpc.max_send_message_length' , - 1 ),
59
+ ('grpc.keepalive_time_ms' , 30000 ),
60
+ ('grpc.dns_resolver_query_timeout_ms' , 1000 ),
61
+ ('grpc.dns_resolver_backoff_multiplier' , 1.0 ),
62
+ ('grpc.dns_resolver_backoff_jitter' , 0.0 ),
63
+ ('grpc.dns_resolver_backoff_min_seconds' , 1 ),
64
+ ('grpc.dns_resolver_backoff_max_seconds' , 5 ),
65
+ ]
66
+
67
+ # Create channel with DNS resolution options
68
+ channel = grpc .insecure_channel (target , options = options )
62
69
transport = transports .CloudTasksGrpcTransport (channel = channel )
63
70
return tasks_v2 .CloudTasksClient (transport = transport )
0 commit comments