Vladimir Mihailenco
c98c5f0eeb
fix: update ChannelWithSubscriptions to accept options
2022-06-04 16:20:10 +03:00
Pau Freixes
98bb99ddc2
Fix Redis Cluster issue during roll outs of new nodes with same addr ( #1914 )
...
* fix: recycle connections in some Redis Cluster scenarios
This issue was surfaced in a Cloud Provider solution that used for
rolling out new nodes using the same address (hostname) of the nodes
that will be replaced in a Redis Cluster, while the former ones once
depromoted as Slaves would continue in service during some mintues
for redirecting traffic.
The solution basically identifies when the connection could be stale
since a MOVED response will be returned using the same address (hostname)
that is being used by the connection. At that moment we consider the
connection as no longer usable forcing to recycle the connection.
2021-10-04 13:10:42 +03:00
Vladimir Mihailenco
b94bde306e
Fix/pubsub ping mutex ( #1878 )
...
* Fix PubSub.Ping to hold the lock
* Fix PubSub.Ping to hold the lock
* add write cmd data-race test
Signed-off-by: monkey92t <golang@88.com>
Co-authored-by: monkey92t <golang@88.com>
2021-09-03 17:57:34 +08:00
Vladimir Mihailenco
37f5a2b1cd
Update changelog
2021-05-26 15:12:25 +03:00
monkey92t
8e8510431d
Improve pubsub ( #1764 )
...
* Improve pubsub
Signed-off-by: monkey92t <golang@88.com>
* Extract code to channel struct and tweak API
* Move chanSendTimeout to channel
* Cleanup health check
* Add WithChannelSendTimeout and tweak comments
* clear notes
Signed-off-by: monkey92t <golang@88.com>
Co-authored-by: Vladimir Mihailenco <vladimir.webdev@gmail.com>
2021-05-26 11:25:18 +08:00
monkey
a2410beb43
upgrade golangci-lint to v1.39.0
...
Signed-off-by: monkey <golang@88.com>
2021-04-08 14:44:31 +08:00
Vladimir Mihailenco
02a9c81ef1
Fix golangci-lint check
2021-03-23 11:02:29 +02:00
Vladimir Mihailenco
76f1e50d50
Do not use retry backoff in PubSub
2020-09-17 12:54:48 +03:00
Vladimir Mihailenco
8a25ceadae
Merge pull request #1448 from rueian/pubsub-message-payload-slice
...
Support string array in pubsub message payload
2020-09-08 18:02:19 +03:00
Vladimir Mihailenco
c357d18624
Faster renew the subscription
2020-09-05 10:56:09 +03:00
Rueian
f5f73f8033
Support string array in pubsub message payload
2020-08-21 17:29:37 +08:00
刘青
8a3f304b25
Log with context to associate all log by traceID ( #1413 )
...
* Log with context to associate all log by traceID
2020-07-18 09:04:36 +03:00
Vladimir Mihailenco
4440575966
Merge branch 'v8'
2020-05-21 10:16:44 +03:00
Vladimir Mihailenco
eecd319ee3
Fix nil type assertion
2020-05-21 09:11:00 +03:00
Vladimir Mihailenco
3dcb844106
Bump major version
2020-05-19 08:52:38 +03:00
Vladimir Mihailenco
f5593121e0
Add ctx as first arg
2020-05-19 08:52:38 +03:00
Iain Proctor
7247939b32
Fix "redis: discarding bad PubSub connection" stuck state ( #1162 )
...
* Reset healthy on reconnect
2019-09-30 11:24:53 +03:00
Vladimir Mihailenco
7779accbea
Use semantic import versioning
2019-08-08 14:29:44 +03:00
Vladimir Mihailenco
4e9cea8876
Add proper SingleConnPool implementation
2019-08-03 17:31:28 +03:00
Vladimir Mihailenco
f3ce3362a0
Add golangci-lint
2019-07-25 14:36:50 +03:00
Vladimir Mihailenco
11ef80b162
Change PubSub.Channel
2019-07-09 10:25:27 +03:00
Vladimir Mihailenco
3bdf64784a
Cleanup
2019-06-17 12:32:40 +03:00
Vladimir Mihailenco
5460bc10f2
Use Context.Deadline to set net.Conn deadline
2019-06-08 15:02:51 +03:00
Francois Parquet
af59960088
Typo error in comments
2019-04-08 20:06:31 +08:00
Vladimir Mihailenco
b6fdeca648
Add PubSub.ChannelSize
2019-03-12 12:48:32 +02:00
Vladimir Mihailenco
21913a8304
pubsub: drop a message when the channel is full
2019-03-12 12:40:08 +02:00
Vladimir Mihailenco
daf101bd79
Fix nil ping error
2018-10-09 10:52:30 +03:00
Vladimir Mihailenco
6a768df38b
.
2018-10-01 11:38:21 +03:00
Vladimir Mihailenco
0197108027
Use bufio.Writer
2018-08-17 14:14:02 +03:00
Vladimir Mihailenco
5146fb0c57
Cleanup buffers manipulation
2018-08-15 11:53:15 +03:00
Vladimir Mihailenco
7c26d1ceb6
Pass cn.Rd where possible
2018-08-15 09:38:58 +03:00
Vladimir Mihailenco
e3b56f7641
pubsub: fix ping logic
2018-08-07 16:48:32 +03:00
Vladimir Mihailenco
316917d99f
pubsub: log an error on reconnect
2018-08-07 10:33:07 +03:00
Vladimir Mihailenco
96d1b85009
Cleanups
2018-08-06 13:59:15 +03:00
Vladimir Mihailenco
b576fe91a1
Use single read and write buffer where possible
2018-08-04 13:09:22 +03:00
Vladimir Mihailenco
7e6413d467
Better allowTimeout in PubSub
2018-07-30 13:57:04 +03:00
Vladimir Mihailenco
9bb7bb3cde
Change ReceiveMessage to not use Ping
2018-07-24 09:54:34 +03:00
Vladimir Mihailenco
ea9da7c2e8
Rework ReceiveMessage
2018-07-23 17:10:58 +03:00
Vladimir Mihailenco
b92dacbfa7
Conn timeout should be higher than read timeout
2018-07-22 08:49:48 +03:00
superkinglabs
877867d284
Remove costly 'appendIfNotExists' and 'remove' call from PubSub ( #743 )
...
* remove costly 'appendIfNotExists' and 'remove' call from pubsub
2018-03-14 12:42:51 +02:00
Veselkov Konstantin
ea4d6c3490
golint warnings are removed
2018-01-24 22:38:47 +04:00
Vladimir Mihailenco
15f14b8305
Create PubSub channel once
2017-10-30 12:09:57 +02:00
Vladimir Mihailenco
dbd2c99ba9
Rework pipeline retrying
2017-09-01 14:56:00 +03:00
Vladimir Mihailenco
dbcf95c85e
Fix PubSub.Subscribe deadlock
2017-08-01 14:21:26 +03:00
Vladimir Mihailenco
6060f097e1
Add PubSub support to Cluster client
2017-07-09 10:07:20 +03:00
Vladimir Mihailenco
0d94a7bc88
Fix race in PubSub
2017-06-29 17:09:52 +03:00
Vladimir Mihailenco
fbc8000fd1
Resent client pool when sentinel switches master
2017-06-29 16:53:49 +03:00
Vladimir Mihailenco
18c1db9466
Doc
2017-05-11 17:02:26 +03:00
Vladimir Mihailenco
13b6f3ffb7
Fix conn management in PubSub
2017-04-24 14:06:27 +03:00
Vladimir Mihailenco
9ebd89772a
Rework PubSub conn management
2017-04-24 13:41:03 +03:00