Nsqd clients¶
-
class
gnsq.NsqdHTTPClient(host='localhost', port=4151, **kwargs)[source]¶ Low level http client for nsqd.
Parameters: - host – nsqd host address (default: localhost)
- port – nsqd http port (default: 4151)
- useragent – useragent sent to nsqd (default:
<client_library_name>/<version>) - connection_class – override the http connection class
-
classmethod
from_url(url, **kwargs)¶ Create a client from a url.
-
multipublish(topic, messages, binary=False)[source]¶ Publish an iterable of messages to the given topic over http.
Parameters: - topic – the topic to publish to
- messages – iterable of bytestrings to publish
- binary – enable binary mode. defaults to False (requires nsq 1.0.0)
By default multipublish expects messages to be delimited by
"\n", use the binary flag to enable binary mode where the POST body is expected to be in the following wire protocol format.
-
pause_channel(topic, channel)[source]¶ Pause message flow to consumers of an existing channel.
Messages will queue at channel.
-
pause_topic(topic)[source]¶ Pause message flow to all channels on an existing topic.
Messages will queue at topic.
-
publish(topic, data, defer=None)[source]¶ Publish a message to the given topic over http.
Parameters: - topic – the topic to publish to
- data – bytestring data to publish
- defer – duration in millisconds to defer before publishing (requires nsq 0.3.6)
-
stats(topic=None, channel=None, text=False)[source]¶ Return internal instrumented statistics.
Parameters: - topic – (optional) filter to topic
- channel – (optional) filter to channel
- text – return the stats as a string (default:
False)
-
class
gnsq.NsqdTCPClient(address='127.0.0.1', port=4150, timeout=60.0, client_id=None, hostname=None, heartbeat_interval=30, output_buffer_size=16384, output_buffer_timeout=250, tls_v1=False, tls_options=None, snappy=False, deflate=False, deflate_level=6, sample_rate=0, auth_secret=None, user_agent='gnsq/1.0.1')[source]¶ Low level object representing a TCP connection to nsqd.
Parameters: - address – the host or ip address of the nsqd
- port – the nsqd tcp port to connect to
- timeout – the timeout for read/write operations (in seconds)
- client_id – an identifier used to disambiguate this client (defaults to the first part of the hostname)
- hostname – the hostname where the client is deployed (defaults to the clients hostname)
- heartbeat_interval – the amount of time in seconds to negotiate with the connected producers to send heartbeats (requires nsqd 0.2.19+)
- output_buffer_size – size of the buffer (in bytes) used by nsqd for buffering writes to this connection
- output_buffer_timeout – timeout (in ms) used by nsqd before flushing buffered writes (set to 0 to disable). Warning: configuring clients with an extremely low (< 25ms) output_buffer_timeout has a significant effect on nsqd CPU usage (particularly with > 50 clients connected).
- tls_v1 – enable TLS v1 encryption (requires nsqd 0.2.22+)
- tls_options – dictionary of options to pass to ssl.wrap_socket()
- snappy – enable Snappy stream compression (requires nsqd 0.2.23+)
- deflate – enable deflate stream compression (requires nsqd 0.2.23+)
- deflate_level – configure the deflate compression level for this connection (requires nsqd 0.2.23+)
- sample_rate – take only a sample of the messages being sent to the client. Not setting this or setting it to 0 will ensure you get all the messages destined for the client. Sample rate can be greater than 0 or less than 100 and the client will receive that percentage of the message traffic. (requires nsqd 0.2.25+)
- auth_secret – a string passed when using nsq auth (requires nsqd 0.2.29+)
- user_agent – a string identifying the agent for this client in the
spirit of HTTP (default:
<client_library_name>/<version>) (requires nsqd 0.2.25+)
-
identify()[source]¶ Update client metadata on the server and negotiate features.
Returns: nsqd response data if there was feature negotiation, otherwise None
-
is_connected¶ Check if the client is currently connected.
-
is_starved¶ Evaluate whether the connection is starved.
This property should be used by message handlers to reliably identify when to process a batch of messages.
-
multipublish(topic, messages)[source]¶ Publish an iterable of messages to the given topic over http.
Parameters: - topic – the topic to publish to
- messages – iterable of bytestrings to publish
-
on_auth[source]¶ Emitted after the connection is successfully authenticated.
The signal sender is the connection and the parsed
responseis sent as arguments.
-
on_close[source]¶ Emitted after
close_stream().Sent after the connection socket has closed. The signal sender is the connection.
-
on_error[source]¶ Emitted when an error frame is received.
The signal sender is the connection and the
erroris sent as an argument.
-
on_finish[source]¶ Emitted after
finish().Sent after a message owned by this connection is successfully finished. The signal sender is the connection and the
message_idis sent as an argument.
-
on_message[source]¶ Emitted when a message frame is received.
The signal sender is the connection and the
messageis sent as an argument.
-
on_requeue[source]¶ Emitted after
requeue().Sent after a message owned by this connection is requeued. The signal sender is the connection and the
message_id,timeoutandbackoffflag are sent as arguments.
-
on_response[source]¶ Emitted when a response frame is received.
The signal sender is the connection and the
responseis sent as an argument.
-
publish(topic, data, defer=None)[source]¶ Publish a message to the given topic over tcp.
Parameters: - topic – the topic to publish to
- data – bytestring data to publish
- defer – duration in milliseconds to defer before publishing (requires nsq 0.3.6)
-
read_response()[source]¶ Read an individual response from nsqd.
Returns: tuple of the frame type and the processed data.
-
class
gnsq.Nsqd(address='127.0.0.1', tcp_port=4150, http_port=4151, **kwargs)[source]¶ Use
NsqdTCPClientorNsqdHTTPClientinstead.Deprecated since version 1.0.0.
-
multipublish_http(topic, messages, **kwargs)[source]¶ Use
NsqdHTTPClient.multipublish()instead.Deprecated since version 1.0.0.
-
multipublish_tcp(topic, messages, **kwargs)[source]¶ Use
NsqdTCPClient.multipublish()instead.Deprecated since version 1.0.0.
-
publish_http(topic, data, **kwargs)[source]¶ Use
NsqdHTTPClient.publish()instead.Deprecated since version 1.0.0.
-
publish_tcp(topic, data, **kwargs)[source]¶ Use
NsqdTCPClient.publish()instead.Deprecated since version 1.0.0.
-