A gevent based python client for NSQ.
Project description
A gevent based python client for NSQ distributed messaging platform.
Features include:
Free software: BSD license
Documentation: https://gnsq.readthedocs.org
Battle tested on billions and billions of messages </sagan>
Based on gevent for fast concurrent networking
Fast and flexible signals with Blinker
Automatic nsqlookupd discovery and back-off
Support for TLS, DEFLATE, and Snappy
Full HTTP clients for both nsqd and nsqlookupd
Installation
At the command line:
$ easy_install gnsq
Or even better, if you have virtualenvwrapper installed:
$ mkvirtualenv gnsq $ pip install gnsq
Currently there is support for Python 2.6 and Python 2.7. Support for Python 3 is dependent on gevent support.
Usage
First make sure nsq is installed and running. Next create a nsqd connection and publish some messages to your topic:
import gnsq conn = gnsq.Nsqd(address='localhost', http_port=4151) conn.publish('topic', 'hello gevent!') conn.publish('topic', 'hello nsq!')
Then create a Reader to consume messages from your topic:
reader = gnsq.Reader('topic', 'channel', 'localhost:4150') @reader.on_message.connect def handler(reader, message): print 'got message:', message.body reader.start()
Dependencies
Optional snappy support depends on the python-snappy package which in turn depends on libsnappy:
# Debian $ sudo apt-get install libsnappy-dev # Or OS X $ brew install snappy # And then install python-snappy $ pip install python-snappy
Contributing
Feedback, issues, and contributions are always gratefully welcomed. See the contributing guide for details on how to help and setup a development environment.
History
0.3.0 (2015-06-14)
Fix extra backoff success/failures during backoff period.
Fix case where handle_backoff is never called.
Add backoff parameter to message.requeue().
Allow overriding backoff on NSQRequeueMessage error.
Handle connection failures while starting/completing backoff.
0.2.3 (2015-02-16)
Remove disconnected nsqd messages from the worker queue.
#4 - Fix crash in Reader.random_ready_conn (thanks @ianpreston).
0.2.2 (2015-01-12)
Allow finishing and requeuing in sync handlers.
0.2.1 (2015-01-12)
Topics and channels are now valid to 64 characters.
Ephemeral topics are now valid.
Adjustable backoff behaviour.
0.2.0 (2014-08-03)
Warn on connection failure.
Add extra requires for snappy.
Add support for nsq auth protocal.
0.1.4 (2014-07-24)
Preemptively update ready count.
Dependency and contributing documentation.
Support for nsq back to 0.2.24.
0.1.3 (2014-07-08)
Block as expected on start, even if already started.
Raise runtime error if starting the reader without a message handler.
Add on_close signal to the reader.
Allow upgrading to tls+snappy or tls+deflate.
0.1.2 (2014-07-08)
Flush delfate buffer for each message.
0.1.1 (2014-07-07)
Fix packaging stream submodule.
Send queued messages before closing socket.
Continue to read from socket on EAGAIN
0.1.0 (2014-07-07)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gnsq-0.3.0.tar.gz
.
File metadata
- Download URL: gnsq-0.3.0.tar.gz
- Upload date:
- Size: 37.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3283bcd74a2d3bcaf6e713498355afe9152fce826d14bacede35a839b81bce61 |
|
MD5 | 2fab1cf428cc44c518e11fc1872bd8ee |
|
BLAKE2b-256 | 085480949db6ad124ad98b38ec129ad1316eeb2b27cd8b2ee007eb7f1b1eaaf9 |
Provenance
File details
Details for the file gnsq-0.3.0-py2.py3-none-any.whl
.
File metadata
- Download URL: gnsq-0.3.0-py2.py3-none-any.whl
- Upload date:
- Size: 25.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18eeb46f7e63fdedc3c8e98591cdc049b366ea7f0e8416598395cfc39492902d |
|
MD5 | 99d7817bad721e23c4dedabf8f799e94 |
|
BLAKE2b-256 | fc7baeedc9fedabb15630b0e56c613c0c1cab0a7b2ff4b38e31e1b470d3d1ca4 |