Skip to content

Change RedisConnection to end subscriptions when not allowed

Nathan Harris requested to merge fix-allow-sub into master

Motivation:

When RedisConnection.allowSubscriptions is set to false, the connection could still be in a subscription state leaving further commands to fail slowly from a full roundtrip to Redis, rather than succeeding as expected.

This changes the implementation so that it triggers a full unsubscribe from patterns and channels when set to false.

Modifications:

  • Change: RedisConnection.allowSubscriptions to call unsubscribe() and punsubscribe() when set to false
  • Change: RedisPubSubHandler to prefix storage of all dictionary keys to avoid name clashes between pattern and channel subscriptions

Result:

Developers should now have more deterministic and unsurprising behavior with PubSub in regards to subscription management and connection state.

Merge request reports