- #254 - don't violate max-in-flight on new connections
- #244 - tornado 6.x support, co-routine message handlers
- #247 - switch to GitHub Actions for CI
- #243 - reduce RDY updates when value hasn't changed (thanks @andyxning)
- #232 - tornado 5.x support
- #238 - enable IPV6 support (thanks @andyxning)
- #230 - fix RDY handling when reducing
max_in_flight
(thanks @alpaker) - #227 - better pydocs for methods
- #223 - update default TLS version to 1.2 and support overriding via tls_options (thanks @duczen)
- #219 - fix py.test deprecated parameterization
- #217/#218 - python 3 fixes (
mpub
,AsyncConn
) - #214 - remove python 2.6 support
- #216 - update PyPI address in docs (thanks @aaronjheng)
- #212 - fix python 3.7
async
keyword conflict - #211/#213/#220/#225 - misc test/CI related fixes
- #210 - fix snappy/deflate high CPU load on disconnection (thanks @zexxonn)
- #208 - fix sending snappy/deflate compressed data (thanks @SpaTmole)
- #201 - specify tornado version in setup (thanks @jphines)
- #200 - update URL for NSQ protocol in docs (thanks @mecforlove)
- #195 - compatibility with tornado 4.5 (thanks @ayamnikov)
- #189/#192 - address Python deprecation warnings (thanks @misja)
- #188 - add ability to specify custom hostname (thanks @andyxning)
- #183 - ensure per-connection RDY counts are updated when connections change (thanks @alpaker)
- #184 - fix zero delay to time_ms in Message.requeue() (thanks @checkraise)
- #177/#179 - improved RDY handling; don't decrement RDY; prevent edge case max in flight violations (thanks @alpaker)
- #175/#176 - prevent edge case max in flight violation (thanks @alpaker)
- #174 - ensure that writer only publishes to active connections (thanks @panaetov)
- #167/#168 - make forwards compatible nsqlookupd queries for NSQ v1.0.0-compat
- #169 - send forwards compatible IDENTIFY attributes for NSQ v1.0.0-compat
- #170 - enable TCP_NODELAY on connections (thanks @protoss-player)
- #161 - fix Python 3.4 protocol error (thanks @xiaost)
- #160 - fix Python 3 JSON decoding error (thanks @mikolajb)
- #150 - Python 3 support (thanks @nickstenning et. al)
- #156 - optimize backoff timer (thanks @ploxiln)
- #157 - reuse protocol struct objects (thanks @virtuald)
- #158 - optimistically schedule next ioloop read (thanks @virtuald)
- #139 - support
DPUB
(thanks @iameugenejo) - #142 - allow infinite attempts (thanks @iameugenejo)
- #146 - fix regression in max_rdy_count from
nsqd
(thanks @klucar) - #148/#147 - test fixes (thanks @nickstenning)
- #129 - fix Snappy
uncompressed
declaration - #130 - add
SIGINT
handler (thanks @jonmorehouse) - #117 - add
set_max_in_flight()
to replace broken, deprecateddisabled()
- #126 - add
msg_timeout
option forIDENTIFY
- #124 - Tornado 4.x compatibility (thanks @mpe)
- #123 - fix exception when
Reader
is stopped before periodic timers start (thanks @mpe) - #121 - trigger the correct
CLOSE
event when socket closes (thanks @ellulpatrick)
- #116 - fix
Message.requeue()
delay
param (thanks @bsphere) - #103 - suppor
#ephemeral
topics - #106/#108/#110/#111/#114 - python 3.0 compatibility (thanks @ijl)
- #100 - add
Reader.close()
(thanks @jonesetc) - #99 - don't redistribute
RDY
when there aren't any connections - #98 - send
RDY
beforeFIN
/REQ
(for nsqio/nsq#404) - #96 - fix exception when
Writer
has no connection
- #91 - change order of max attempts check
- #89 - properly handle
requeue(backoff=False)
when in backoff state - #87 - verify keyword args passed to
Reader
(thanks @stanhu) - #85 - fix
nsqlookupd
addresses specified without scheme
- #84 - use a named logger (thanks @virtuald)
- #83 - add
DEFLATE
support (thanks @wtolson) - #80 - configurable
nsqlookupd
HTTP request timeouts (thanks @stanhu) - #78 - fix potential
Reader
connection index error (thanks @xiaost) - #77 - more flexible
nsqlookupd
configuration - #76 - fix potential out-of-order backoff/resume
- #72 -
AUTH
support - #73 - support 64char topic/channel names (thanks @svmehta)
IMPORTANT: this is a bug-fix release to address an issue where Reader
would raise
an exception when receiving a heartbeat.
- #68 - fix heartbeat_interval bug
IMPORTANT: this is a bug-fix release to address an issue preventing Reader
from
consuming messages.
- #63 - fix connection attributes bug;
heartbeat_interval
as ms - #65 - fix invalid arguments during read error
- #66/#64 - add integration tests; improve testing matrix
This release includes an array of new features, refactoring, and bug fixes.
Primarily, support for sampling channels, modifying output buffering, enabling Snappy compression, and setting user agent metadata.
Finally, there was a large internal refactoring in #52 to achieve better separation of concerns and pep8 compliance in #53.
- #59 - add
nsq_to_nsq
example app (thanks @ploxiln) - #58 - add user agent
IDENTIFY
metadata (thanks @elubow) - #57 - add channel sampling feature negotiation
- #55 - update
Message
docs (thanks @dsoprea) - #53 - pep8
- #52 - evented refactoring
- #49 - add output buffering feature negotiation
- #50 - add Snappy compression feature negotiation
- #51 - fix periodic timers when not configuring
nsqlookupd
This is a bug-fix release addressing a few issues in Writer
.
- #48 - fix writer encoding issues
- #47 - fix writer uncaught exception when no connections to publish to
- #45 - fix writer id property
This release drops the concept of "tasks" in Reader
(in favor of a single message handler). This
greatly simplifies internal RDY state handling and is a cleaner API as we head towards 1.0.
These changes modify the public API and break backwards compatibility. To ease the transition we've
added a LegacyReader
class that accepts the previous version's arguments and facilitates
instantiating new Reader
instances for each task with the same automatic channel naming
conventions.
We suggest you begin to migrate towards using the new API directly (LegacyReader
will not be
in the 1.0 release), but for now the upgrade is as simple as:
from nsq import LegacyReader as Reader
Finally, TLS support is available via tls_v1
and tls_options
params to Reader
(available in
nsqd
as of 0.2.22+
).
- #42 - TLS support
- #39 - distribute requests to lookupd
- #38 - fix edge case where conn would never get RDY; RDY fairness when # conns > max_in_flight
- #36/#37 - refactor internal connection, backoff, and RDY handling
- #29/#34/#35 - refactor public API (drop "tasks"); improve RDY count handling
- #28/#31 - improve backoff handling
- #25 - add Writer
- #24 - add is_starved to Reader
- #23 - fix Message export, cleanup IDENTIFY response logging
- #22 - feature negotiation (supported by nsqd v0.2.20+) wait 2x heartbeat interval before closing conns more logging improvements
- #21 - configurable heartbeat interval (supported by nsqd v0.2.19+)
- #17 - add task to all connection related logging; ensure max_in_flight is never < # tasks
- #16 - always set initial RDY count to 1
- #14 - automatically reconnect to nsqd when not using lookupd
- #12 - cleanup/remove deprecated async=True
- #9 - redistribute ready state when max_in_flight < num_conns
- #10 - fix parameter type for REQ
- #8 - add tests
- #6 - fix TOUCH; deprecate
async=True
in favor of always using message instance methods
- #4 - TOUCH support; new message response API (deprecates
finisher
)
- #5 - add/use IDENTIFY
- #1 - check topic/channel length for validity
- Initial Release