redis-message-queue 0.9.0__tar.gz → 0.10.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (17) hide show
  1. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/PKG-INFO +1 -1
  2. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/pyproject.toml +1 -1
  3. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/_config.py +20 -5
  4. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/LICENSE +0 -0
  5. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/README.md +0 -0
  6. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/__init__.py +0 -0
  7. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/_abstract_redis_gateway.py +0 -0
  8. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/_queue_key_manager.py +0 -0
  9. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/_redis_gateway.py +0 -0
  10. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/asyncio/__init__.py +0 -0
  11. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/asyncio/_abstract_redis_gateway.py +0 -0
  12. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/asyncio/_redis_gateway.py +0 -0
  13. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/asyncio/redis_message_queue.py +0 -0
  14. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/interrupt_handler/__init__.py +0 -0
  15. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/interrupt_handler/_implementation.py +0 -0
  16. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/interrupt_handler/_interface.py +0 -0
  17. {redis_message_queue-0.9.0 → redis_message_queue-0.10.0}/redis_message_queue/redis_message_queue.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: redis-message-queue
3
- Version: 0.9.0
3
+ Version: 0.10.0
4
4
  Summary: Python message queuing with Redis and message deduplication
5
5
  Author: Elijas
6
6
  Author-email: 4084885+Elijas@users.noreply.github.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "redis-message-queue"
3
- version = "0.9.0"
3
+ version = "0.10.0"
4
4
  description = "Python message queuing with Redis and message deduplication"
5
5
  authors = ["Elijas <4084885+Elijas@users.noreply.github.com>"]
6
6
  readme = "README.md"
@@ -21,14 +21,29 @@ logger = logging.getLogger(__name__)
21
21
 
22
22
 
23
23
  def is_redis_retryable_exception(exception):
24
+ # 1. Handle ConnectionError hierarchy (retryable except credentials/config issues)
25
+ if isinstance(exception, redis.exceptions.ConnectionError):
26
+ return not isinstance(
27
+ exception,
28
+ (
29
+ redis.exceptions.AuthenticationError, # Permanent credentials error
30
+ redis.exceptions.AuthorizationError, # Permanent permissions error
31
+ redis.exceptions.MaxConnectionsError, # Client-side connection pool exhaustion
32
+ ),
33
+ )
34
+
35
+ # 2. Explicit retryable exceptions
24
36
  return isinstance(
25
37
  exception,
26
38
  (
27
- redis.exceptions.ConnectionError,
28
- redis.exceptions.TimeoutError,
29
- redis.exceptions.BusyLoadingError,
30
- redis.exceptions.ClusterDownError,
31
- redis.exceptions.TryAgainError,
39
+ # Network/availability issues
40
+ redis.exceptions.TimeoutError, # Socket or server-side timeout
41
+ redis.exceptions.BusyLoadingError, # Server loading data
42
+ # Cluster transient failures
43
+ redis.exceptions.ClusterDownError, # Covers ClusterDown + MasterDown
44
+ redis.exceptions.TryAgainError, # Cluster state requires retry
45
+ # Server-side transient errors
46
+ redis.exceptions.ReadOnlyError, # Replica might become writable
32
47
  ),
33
48
  )
34
49