diff options
author | Marc Labbé <mrlabbe@gmail.com> | 2014-01-16 18:21:25 -0800 |
---|---|---|
committer | Marc Labbé <mrlabbe@gmail.com> | 2014-01-16 18:21:25 -0800 |
commit | 6db14de1673dac9164f8774efdcf01abc2e1a7fb (patch) | |
tree | b22e2042925dfad1cfd8c9495dc5d3bbdf4fb4f7 | |
parent | 21e943828b3d4a2916ab2bdc1a79a8298a4f787d (diff) | |
parent | ef24c117fee22d4f5ba9f71450974ddad598fafa (diff) | |
download | kafka-python-6db14de1673dac9164f8774efdcf01abc2e1a7fb.tar.gz |
Merge pull request #107 from rdiomar/fix_default_timeouts
Increase default connection timeout
-rw-r--r-- | kafka/client.py | 8 | ||||
-rw-r--r-- | kafka/conn.py | 8 |
2 files changed, 13 insertions, 3 deletions
diff --git a/kafka/client.py b/kafka/client.py index 550da08..155f658 100644 --- a/kafka/client.py +++ b/kafka/client.py @@ -10,7 +10,7 @@ from kafka.common import (ErrorMapping, TopicAndPartition, BrokerResponseError, PartitionUnavailableError, KafkaUnavailableError, KafkaRequestError) -from kafka.conn import KafkaConnection +from kafka.conn import KafkaConnection, DEFAULT_SOCKET_TIMEOUT_SECONDS from kafka.protocol import KafkaProtocol log = logging.getLogger("kafka") @@ -21,7 +21,11 @@ class KafkaClient(object): CLIENT_ID = "kafka-python" ID_GEN = count() - def __init__(self, host, port, client_id=CLIENT_ID, timeout=10): + # NOTE: The timeout given to the client should always be greater than the + # one passed to SimpleConsumer.get_message(), otherwise you can get a + # socket timeout. + def __init__(self, host, port, client_id=CLIENT_ID, + timeout=DEFAULT_SOCKET_TIMEOUT_SECONDS): # We need one connection to bootstrap self.client_id = client_id self.timeout = timeout diff --git a/kafka/conn.py b/kafka/conn.py index f353441..2b8f1c2 100644 --- a/kafka/conn.py +++ b/kafka/conn.py @@ -8,6 +8,7 @@ from kafka.common import ConnectionError log = logging.getLogger("kafka") +DEFAULT_SOCKET_TIMEOUT_SECONDS = 120 class KafkaConnection(local): """ @@ -17,8 +18,13 @@ class KafkaConnection(local): by a call to `recv` in order to get the correct response. Eventually, we can do something in here to facilitate multiplexed requests/responses since the Kafka API includes a correlation id. + + host: the host name or IP address of a kafka broker + port: the port number the kafka broker is listening on + timeout: default 120. The socket timeout for sending and receiving data + in seconds. None means no timeout, so a request can block forever. """ - def __init__(self, host, port, timeout=10): + def __init__(self, host, port, timeout=DEFAULT_SOCKET_TIMEOUT_SECONDS): super(KafkaConnection, self).__init__() self.host = host self.port = port |