File tree Expand file tree Collapse file tree 3 files changed +15
-3
lines changed Expand file tree Collapse file tree 3 files changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -64,6 +64,7 @@ class KafkaClient(object):
64
64
'ssl_crlfile' : None ,
65
65
'api_version' : None ,
66
66
'api_version_auto_timeout_ms' : 2000 ,
67
+ 'selector' : selectors .DefaultSelector ,
67
68
}
68
69
API_VERSIONS = [
69
70
(0 , 10 ),
@@ -135,6 +136,9 @@ def __init__(self, **configs):
135
136
api_version_auto_timeout_ms (int): number of milliseconds to throw a
136
137
timeout exception from the constructor when checking the broker
137
138
api version. Only applies if api_version is None
139
+ selector (selectors.BaseSelector): Provide a specific selector
140
+ implementation to use for I/O multiplexing.
141
+ Default: selectors.DefaultSelector
138
142
"""
139
143
self .config = copy .copy (self .DEFAULT_CONFIG )
140
144
for key in self .config :
@@ -150,7 +154,7 @@ def __init__(self, **configs):
150
154
self ._topics = set () # empty set will fetch all topic metadata
151
155
self ._metadata_refresh_in_progress = False
152
156
self ._last_no_node_available_ms = 0
153
- self ._selector = selectors . DefaultSelector ()
157
+ self ._selector = self . config [ 'selector' ] ()
154
158
self ._conns = {}
155
159
self ._connecting = set ()
156
160
self ._refresh_on_disconnects = True
Original file line number Diff line number Diff line change 6
6
7
7
import six
8
8
9
- from kafka .client_async import KafkaClient
9
+ from kafka .client_async import KafkaClient , selectors
10
10
from kafka .consumer .fetcher import Fetcher
11
11
from kafka .consumer .subscription_state import SubscriptionState
12
12
from kafka .coordinator .consumer import ConsumerCoordinator
@@ -173,6 +173,9 @@ class KafkaConsumer(six.Iterator):
173
173
metrics. Default: 2
174
174
metrics_sample_window_ms (int): The maximum age in milliseconds of
175
175
samples used to compute metrics. Default: 30000
176
+ selector (selectors.BaseSelector): Provide a specific selector
177
+ implementation to use for I/O multiplexing.
178
+ Default: selectors.DefaultSelector
176
179
177
180
Note:
178
181
Configuration parameters are described in more detail at
@@ -218,6 +221,7 @@ class KafkaConsumer(six.Iterator):
218
221
'metric_reporters' : [],
219
222
'metrics_num_samples' : 2 ,
220
223
'metrics_sample_window_ms' : 30000 ,
224
+ 'selector' : selectors .DefaultSelector ,
221
225
}
222
226
223
227
def __init__ (self , * topics , ** configs ):
Original file line number Diff line number Diff line change 8
8
import weakref
9
9
10
10
from .. import errors as Errors
11
- from ..client_async import KafkaClient
11
+ from ..client_async import KafkaClient , selectors
12
12
from ..metrics import MetricConfig , Metrics
13
13
from ..partitioner .default import DefaultPartitioner
14
14
from ..protocol .message import Message , MessageSet
@@ -228,6 +228,9 @@ class KafkaProducer(object):
228
228
metrics. Default: 2
229
229
metrics_sample_window_ms (int): The maximum age in milliseconds of
230
230
samples used to compute metrics. Default: 30000
231
+ selector (selectors.BaseSelector): Provide a specific selector
232
+ implementation to use for I/O multiplexing.
233
+ Default: selectors.DefaultSelector
231
234
232
235
Note:
233
236
Configuration parameters are described in more detail at
@@ -267,6 +270,7 @@ class KafkaProducer(object):
267
270
'metric_reporters' : [],
268
271
'metrics_num_samples' : 2 ,
269
272
'metrics_sample_window_ms' : 30000 ,
273
+ 'selector' : selectors .DefaultSelector ,
270
274
}
271
275
272
276
def __init__ (self , ** configs ):
You can’t perform that action at this time.
0 commit comments