Utility Classes

Enums

class PureToken(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: CaseAndEncodingInsensitiveEnum

Enum for using pure-tokens with the redis api.

UNIQUE = b'UNIQUE'

Used by:

  • GRAPH.CONSTRAINT CREATE

  • GRAPH.CONTRAINT DROP

MANDATORY = b'MANDATORY'

Used by:

  • GRAPH.CONSTRAINT CREATE

  • GRAPH.CONTRAINT DROP

RESET = b'RESET'

Used by:

  • ACL LOG

SCHEDULE = b'SCHEDULE'

Used by:

  • BGSAVE

BIT = b'BIT'

Used by:

  • BITCOUNT

  • BITPOS

BYTE = b'BYTE'

Used by:

  • BITCOUNT

  • BITPOS

FAIL = b'FAIL'

Used by:

  • BITFIELD

SAT = b'SAT'

Used by:

  • BITFIELD

WRAP = b'WRAP'

Used by:

  • BITFIELD

AND = b'AND'

Used by:

  • BITOP

NOT = b'NOT'

Used by:

  • BITOP

OR = b'OR'

Used by:

  • BITOP

XOR = b'XOR'

Used by:

  • BITOP

LEFT = b'LEFT'

Used by:

  • BLMOVE

  • BLMPOP

  • LMOVE

  • LMPOP

RIGHT = b'RIGHT'

Used by:

  • BLMOVE

  • BLMPOP

  • LMOVE

  • LMPOP

MAX = b'MAX'

Used by:

  • BZMPOP

  • TS.ADD

  • TS.ALTER

  • TS.CREATE

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

  • ZINTER

  • ZINTERSTORE

  • ZMPOP

  • ZUNION

  • ZUNIONSTORE

MIN = b'MIN'

Used by:

  • BZMPOP

  • TS.ADD

  • TS.ALTER

  • TS.CREATE

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

  • ZINTER

  • ZINTERSTORE

  • ZMPOP

  • ZUNION

  • ZUNIONSTORE

NO = b'NO'

Used by:

  • CLIENT CACHING

  • CLIENT KILL

  • SCRIPT DEBUG

YES = b'YES'

Used by:

  • CLIENT CACHING

  • CLIENT KILL

  • SCRIPT DEBUG

MASTER = b'MASTER'

Used by:

  • CLIENT KILL

  • CLIENT LIST

NORMAL = b'NORMAL'

Used by:

  • CLIENT KILL

  • CLIENT LIST

PUBSUB = b'PUBSUB'

Used by:

  • CLIENT KILL

  • CLIENT LIST

REPLICA = b'REPLICA'

Used by:

  • CLIENT KILL

  • CLIENT LIST

SLAVE = b'SLAVE'

Used by:

  • CLIENT KILL

OFF = b'OFF'

Used by:

  • CLIENT NO-EVICT

  • CLIENT NO-TOUCH

  • CLIENT REPLY

  • CLIENT TRACKING

ON = b'ON'

Used by:

  • CLIENT NO-EVICT

  • CLIENT NO-TOUCH

  • CLIENT REPLY

  • CLIENT TRACKING

ALL = b'ALL'

Used by:

  • CLIENT PAUSE

WRITE = b'WRITE'

Used by:

  • CLIENT PAUSE

SKIP = b'SKIP'

Used by:

  • CLIENT REPLY

BCAST = b'BCAST'

Used by:

  • CLIENT TRACKING

NOLOOP = b'NOLOOP'

Used by:

  • CLIENT TRACKING

OPTIN = b'OPTIN'

Used by:

  • CLIENT TRACKING

OPTOUT = b'OPTOUT'

Used by:

  • CLIENT TRACKING

ERROR = b'ERROR'

Used by:

  • CLIENT UNBLOCK

TIMEOUT = b'TIMEOUT'

Used by:

  • CLIENT UNBLOCK

FORCE = b'FORCE'

Used by:

  • CLUSTER FAILOVER

  • FAILOVER

  • SHUTDOWN

  • XCLAIM

TAKEOVER = b'TAKEOVER'

Used by:

  • CLUSTER FAILOVER

HARD = b'HARD'

Used by:

  • CLUSTER RESET

SOFT = b'SOFT'

Used by:

  • CLUSTER RESET

STABLE = b'STABLE'

Used by:

  • CLUSTER SETSLOT

REPLACE = b'REPLACE'

Used by:

  • COPY

  • FUNCTION LOAD

  • FUNCTION RESTORE

  • MIGRATE

  • RESTORE

  • RESTORE-ASKING

GT = b'GT'

Used by:

  • EXPIRE

  • EXPIREAT

  • PEXPIRE

  • PEXPIREAT

  • ZADD

LT = b'LT'

Used by:

  • EXPIRE

  • EXPIREAT

  • PEXPIRE

  • PEXPIREAT

  • ZADD

NX = b'NX'

Used by:

  • EXPIRE

  • EXPIREAT

  • GEOADD

  • JSON.SET

  • PEXPIRE

  • PEXPIREAT

  • SET

  • ZADD

XX = b'XX'

Used by:

  • EXPIRE

  • EXPIREAT

  • GEOADD

  • JSON.SET

  • PEXPIRE

  • PEXPIREAT

  • SET

  • ZADD

ABORT = b'ABORT'

Used by:

  • FAILOVER

  • SHUTDOWN

ASYNC = b'ASYNC'

Used by:

  • FLUSHALL

  • FLUSHDB

  • FUNCTION FLUSH

  • SCRIPT FLUSH

SYNC = b'SYNC'

Used by:

  • FLUSHALL

  • FLUSHDB

  • FUNCTION FLUSH

  • SCRIPT DEBUG

  • SCRIPT FLUSH

WITHCODE = b'WITHCODE'

Used by:

  • FUNCTION LIST

APPEND = b'APPEND'

Used by:

  • FUNCTION RESTORE

FLUSH = b'FLUSH'

Used by:

  • FUNCTION RESTORE

CHANGE = b'CH'

Used by:

  • GEOADD

  • ZADD

FT = b'FT'

Used by:

  • FT.SEARCH

  • GEODIST

  • GEORADIUS

  • GEORADIUSBYMEMBER

  • GEORADIUSBYMEMBER_RO

  • GEORADIUS_RO

  • GEOSEARCH

  • GEOSEARCHSTORE

KM = b'KM'

Used by:

  • FT.SEARCH

  • GEODIST

  • GEORADIUS

  • GEORADIUSBYMEMBER

  • GEORADIUSBYMEMBER_RO

  • GEORADIUS_RO

  • GEOSEARCH

  • GEOSEARCHSTORE

M = b'M'

Used by:

  • FT.SEARCH

  • GEODIST

  • GEORADIUS

  • GEORADIUSBYMEMBER

  • GEORADIUSBYMEMBER_RO

  • GEORADIUS_RO

  • GEOSEARCH

  • GEOSEARCHSTORE

MI = b'MI'

Used by:

  • FT.SEARCH

  • GEODIST

  • GEORADIUS

  • GEORADIUSBYMEMBER

  • GEORADIUSBYMEMBER_RO

  • GEORADIUS_RO

  • GEOSEARCH

  • GEOSEARCHSTORE

ANY = b'ANY'

Used by:

  • GEORADIUS

  • GEORADIUSBYMEMBER

  • GEORADIUSBYMEMBER_RO

  • GEORADIUS_RO

  • GEOSEARCH

  • GEOSEARCHSTORE

ASC = b'ASC'

Used by:

  • FT.AGGREGATE

  • FT.SEARCH

  • GEORADIUS

  • GEORADIUSBYMEMBER

  • GEORADIUSBYMEMBER_RO

  • GEORADIUS_RO

  • GEOSEARCH

  • GEOSEARCHSTORE

  • SORT

  • SORT_RO

DESC = b'DESC'

Used by:

  • FT.AGGREGATE

  • FT.SEARCH

  • GEORADIUS

  • GEORADIUSBYMEMBER

  • GEORADIUSBYMEMBER_RO

  • GEORADIUS_RO

  • GEOSEARCH

  • GEOSEARCHSTORE

  • SORT

  • SORT_RO

WITHCOORD = b'WITHCOORD'

Used by:

  • GEORADIUS

  • GEORADIUSBYMEMBER

  • GEORADIUSBYMEMBER_RO

  • GEORADIUS_RO

  • GEOSEARCH

WITHDIST = b'WITHDIST'

Used by:

  • GEORADIUS

  • GEORADIUSBYMEMBER

  • GEORADIUSBYMEMBER_RO

  • GEORADIUS_RO

  • GEOSEARCH

WITHHASH = b'WITHHASH'

Used by:

  • GEORADIUS

  • GEORADIUSBYMEMBER

  • GEORADIUSBYMEMBER_RO

  • GEORADIUS_RO

  • GEOSEARCH

STOREDIST = b'STOREDIST'

Used by:

  • GEOSEARCHSTORE

PERSIST = b'PERSIST'

Used by:

  • GETEX

WITHVALUES = b'WITHVALUES'

Used by:

  • HRANDFIELD

IDX = b'IDX'

Used by:

  • LCS

LEN = b'LEN'

Used by:

  • LCS

WITHMATCHLEN = b'WITHMATCHLEN'

Used by:

  • LCS

AFTER = b'AFTER'

Used by:

  • LINSERT

BEFORE = b'BEFORE'

Used by:

  • LINSERT

COPY = b'COPY'

Used by:

  • MIGRATE

EMPTY_STRING = b''

Used by:

  • MIGRATE

ABSTTL = b'ABSTTL'

Used by:

  • RESTORE

  • RESTORE-ASKING

GET = b'GET'

Used by:

  • SET

KEEPTTL = b'KEEPTTL'

Used by:

  • SET

NOSAVE = b'NOSAVE'

Used by:

  • SHUTDOWN

NOW = b'NOW'

Used by:

  • SHUTDOWN

SAVE = b'SAVE'

Used by:

  • SHUTDOWN

SORTING = b'ALPHA'

Used by:

  • SORT

  • SORT_RO

APPROXIMATELY = b'~'

Used by:

  • XADD

  • XTRIM

AUTO_ID = b'*'

Used by:

  • XADD

EQUAL = b'='

Used by:

  • XADD

  • XTRIM

MAXLEN = b'MAXLEN'

Used by:

  • XADD

  • XTRIM

MINID = b'MINID'

Used by:

  • XADD

  • XTRIM

NOMKSTREAM = b'NOMKSTREAM'

Used by:

  • XADD

JUSTID = b'JUSTID'

Used by:

  • XAUTOCLAIM

  • XCLAIM

MKSTREAM = b'MKSTREAM'

Used by:

  • XGROUP CREATE

NEW_ID = b'$'

Used by:

  • XGROUP CREATE

  • XGROUP SETID

FULL = b'FULL'

Used by:

  • XINFO STREAM

NOACK = b'NOACK'

Used by:

  • XREADGROUP

INCREMENT = b'INCR'

Used by:

  • ZADD

WITHSCORES = b'WITHSCORES'

Used by:

  • FT.SEARCH

  • FT.SUGGET

  • ZDIFF

  • ZINTER

  • ZRANDMEMBER

  • ZRANGE

  • ZRANGEBYSCORE

  • ZREVRANGE

  • ZREVRANGEBYSCORE

  • ZUNION

SUM = b'SUM'

Used by:

  • TS.ADD

  • TS.ALTER

  • TS.CREATE

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

  • ZINTER

  • ZINTERSTORE

  • ZUNION

  • ZUNIONSTORE

BYLEX = b'BYLEX'

Used by:

  • ZRANGE

  • ZRANGESTORE

BYSCORE = b'BYSCORE'

Used by:

  • ZRANGE

  • ZRANGESTORE

REV = b'REV'

Used by:

  • ZRANGE

  • ZRANGESTORE

WITHSCORE = b'WITHSCORE'

Used by:

  • ZRANK

  • ZREVRANK

NONSCALING = b'NONSCALING'

Used by:

  • BF.INSERT

  • BF.RESERVE

ITEMS = b'ITEMS'

Used by:

  • BF.INFO

  • BF.INSERT

  • CF.INSERT

  • CF.INSERTNX

NOCREATE = b'NOCREATE'

Used by:

  • BF.INSERT

  • CF.INSERT

  • CF.INSERTNX

CAPACITY = b'CAPACITY'

Used by:

  • BF.INFO

EXPANSION = b'EXPANSION'

Used by:

  • BF.INFO

FILTERS = b'FILTERS'

Used by:

  • BF.INFO

SIZE = b'SIZE'

Used by:

  • BF.INFO

WEIGHTS = b'WEIGHTS'

Used by:

  • CMS.MERGE

WITHCOUNT = b'WITHCOUNT'

Used by:

  • TOPK.LIST

COMPRESSION = b'COMPRESSION'

Used by:

  • TDIGEST.MERGE

OVERRIDE = b'OVERRIDE'

Used by:

  • TDIGEST.MERGE

BLOCK = b'BLOCK'

Used by:

  • TS.ADD

  • TS.ALTER

  • TS.CREATE

COMPRESSED = b'COMPRESSED'

Used by:

  • TS.ADD

  • TS.CREATE

FIRST = b'FIRST'

Used by:

  • TS.ADD

  • TS.ALTER

  • TS.CREATE

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

LAST = b'LAST'

Used by:

  • TS.ADD

  • TS.ALTER

  • TS.CREATE

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

UNCOMPRESSED = b'UNCOMPRESSED'

Used by:

  • TS.ADD

  • TS.CREATE

  • TS.DECRBY

  • TS.INCRBY

AVG = b'AVG'

Used by:

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

COUNT = b'COUNT'

Used by:

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

RANGE = b'RANGE'

Used by:

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

STD_P = b'STD.P'

Used by:

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

STD_S = b'STD.S'

Used by:

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

TWA = b'TWA'

Used by:

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

VAR_P = b'VAR.P'

Used by:

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

VAR_S = b'VAR.S'

Used by:

  • TS.CREATERULE

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

BUCKETTIMESTAMP = b'BUCKETTIMESTAMP'

Used by:

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

EMPTY = b'EMPTY'

Used by:

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

FILTER_BY_VALUE = b'FILTER_BY_VALUE'

Used by:

  • TS.MRANGE

  • TS.MREVRANGE

  • TS.RANGE

  • TS.REVRANGE

GROUPBY = b'GROUPBY'

Used by:

  • TS.MRANGE

  • TS.MREVRANGE

SELECTED_LABELS = b'SELECTED_LABELS'

Used by:

  • TS.MGET

  • TS.MRANGE

  • TS.MREVRANGE

WITHLABELS = b'WITHLABELS'

Used by:

  • TS.MGET

  • TS.MRANGE

  • TS.MREVRANGE

GEO = b'GEO'

Used by:

  • FT.CREATE

HASH = b'HASH'

Used by:

  • FT.CREATE

JSON = b'JSON'

Used by:

  • FT.CREATE

MAXTEXTFIELDS = b'MAXTEXTFIELDS'

Used by:

  • FT.CREATE

NOFIELDS = b'NOFIELDS'

Used by:

  • FT.CREATE

NOFREQS = b'NOFREQS'

Used by:

  • FT.CREATE

NOHL = b'NOHL'

Used by:

  • FT.CREATE

NOINDEX = b'NOINDEX'

Used by:

  • FT.CREATE

NOOFFSETS = b'NOOFFSETS'

Used by:

  • FT.CREATE

NUMERIC = b'NUMERIC'

Used by:

  • FT.CREATE

SCHEMA = b'SCHEMA'

Used by:

  • FT.ALTER

  • FT.CREATE

SKIPINITIALSCAN = b'SKIPINITIALSCAN'

Used by:

  • FT.ALTER

  • FT.CREATE

  • FT.SYNUPDATE

SORTABLE = b'SORTABLE'

Used by:

  • FT.CREATE

TAG = b'TAG'

Used by:

  • FT.CREATE

TEXT = b'TEXT'

Used by:

  • FT.CREATE

UNF = b'UNF'

Used by:

  • FT.CREATE

VECTOR = b'VECTOR'

Used by:

  • FT.CREATE

WITHSUFFIXTRIE = b'WITHSUFFIXTRIE'

Used by:

  • FT.CREATE

ADD = b'ADD'

Used by:

  • FT.ALTER

DELETE_DOCS = b'DD'

Used by:

  • FT.DROPINDEX

EXCLUDE = b'EXCLUDE'

Used by:

  • FT.SPELLCHECK

INCLUDE = b'INCLUDE'

Used by:

  • FT.SPELLCHECK

EXPLAINSCORE = b'EXPLAINSCORE'

Used by:

  • FT.SEARCH

HIGHLIGHT = b'HIGHLIGHT'

Used by:

  • FT.SEARCH

INORDER = b'INORDER'

Used by:

  • FT.SEARCH

LIMIT = b'LIMIT'

Used by:

  • FT.AGGREGATE

  • FT.SEARCH

NOCONTENT = b'NOCONTENT'

Used by:

  • FT.SEARCH

NOSTOPWORDS = b'NOSTOPWORDS'

Used by:

  • FT.SEARCH

PARAMS = b'PARAMS'

Used by:

  • FT.AGGREGATE

  • FT.SEARCH

SUMMARIZE = b'SUMMARIZE'

Used by:

  • FT.SEARCH

TAGS = b'TAGS'

Used by:

  • FT.SEARCH

VERBATIM = b'VERBATIM'

Used by:

  • FT.AGGREGATE

  • FT.SEARCH

WITHPAYLOADS = b'WITHPAYLOADS'

Used by:

  • FT.SEARCH

  • FT.SUGGET

WITHSORTKEYS = b'WITHSORTKEYS'

Used by:

  • FT.SEARCH

LOADALL = b'LOAD *'

Used by:

  • FT.AGGREGATE

WITHCURSOR = b'WITHCURSOR'

Used by:

  • FT.AGGREGATE

AGGREGATE = b'AGGREGATE'

Used by:

  • FT.PROFILE

LIMITED = b'LIMITED'

Used by:

  • FT.PROFILE

QUERYWORD = b'QUERY'

Used by:

  • FT.PROFILE

SEARCH = b'SEARCH'

Used by:

  • FT.PROFILE

INCR = b'INCR'

Used by:

  • FT.SUGADD

FUZZY = b'FUZZY'

Used by:

  • FT.SUGGET

Monitor

class Monitor(client: coredis.client.Client[AnyStr])[source]

Monitor is useful for handling the MONITOR command to the redis server.

It can be used as an infinite async iterator:

async for command in client.monitor():
    print(command.time, command.client_type, command.command, command.args)

Alternatively, each command can be fetched explicitly:

monitor = client.monitor()
command1 = await monitor.get_command()
command2 = await monitor.get_command()
monitor.stop()
async get_command() MonitorResult[source]

Wait for the next command issued and return the details

async stop() None[source]

Stop monitoring by issuing a RESET command and release the connection.

run_in_thread(response_handler: Callable[[MonitorResult], None], loop: AbstractEventLoop | None = None) MonitorThread[source]

Runs the monitor in a MonitorThread and invokes response_handler for every command received.

To stop the processing call MonitorThread.stop() on the instance returned by this method.

class MonitorThread(monitor: Monitor[Any], loop: AbstractEventLoop, response_handler: Callable[[MonitorResult], None])[source]

Bases: Thread

Thread to be used to run monitor

run() None[source]

Method representing the thread’s activity.

You may override this method in a subclass. The standard run() method invokes the callable object passed to the object’s constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.

Retries

coredis.retry

Utilities for managing errors that can be recovered from by providing retry policies.

class ConstantRetryPolicy(retryable_exceptions: tuple[Type[BaseException], ...], retries: int, delay: float)[source]

Retry policy that pauses ConstantRetryPolicy.delay seconds between ConstantRetryPolicy.retries if any of ConstantRetryPolicy.retryable_exceptions are encountered.

async call_with_retries(func: Callable[[...], Coroutine[Any, Any, R]], before_hook: Callable[[...], Coroutine[Any, Any, Any]] | None = None, failure_hook: Callable[[...], Coroutine[Any, Any, None]] | dict[Type[BaseException], Callable[[...], Coroutine[Any, Any, None]]] | None = None) R
Parameters:
  • func – a function that should return the coroutine that will be awaited when retrying if RetryPolicy.retryable_exceptions is encountered.

  • before_hook – if provided will be called on every attempt.

  • failure_hook – if provided and is a callable it will be called everytime a retryable exception is encountered. If it is a mapping of exception types to callables, the first exception type that is a parent of any encountered exception will be called.

class ExponentialBackoffRetryPolicy(retryable_exceptions: tuple[Type[BaseException], ...], retries: int, initial_delay: float)[source]

Retry policy that exponentially backs off before retrying up to ExponentialBackoffRetryPolicy.retries if any of ExponentialBackoffRetryPolicy.retryable_exceptions are encountered. ExponentialBckoffRetryPolicy.initial_delay is used as the initial value for calculating the exponential backoff.

async call_with_retries(func: Callable[[...], Coroutine[Any, Any, R]], before_hook: Callable[[...], Coroutine[Any, Any, Any]] | None = None, failure_hook: Callable[[...], Coroutine[Any, Any, None]] | dict[Type[BaseException], Callable[[...], Coroutine[Any, Any, None]]] | None = None) R
Parameters:
  • func – a function that should return the coroutine that will be awaited when retrying if RetryPolicy.retryable_exceptions is encountered.

  • before_hook – if provided will be called on every attempt.

  • failure_hook – if provided and is a callable it will be called everytime a retryable exception is encountered. If it is a mapping of exception types to callables, the first exception type that is a parent of any encountered exception will be called.

class CompositeRetryPolicy(*retry_policies: RetryPolicy)[source]

Convenience class to combine multiple retry policies

add_retry_policy(policy: RetryPolicy) None[source]

Add to the retry policies that this instance was created with

async call_with_retries(func: Callable[[...], Coroutine[Any, Any, R]], before_hook: Callable[[...], Coroutine[Any, Any, Any]] | None = None, failure_hook: Callable[[...], Coroutine[Any, Any, None]] | dict[Type[BaseException], Callable[[...], Coroutine[Any, Any, None]]] | None = None) R[source]

Calls func repeatedly according to the retry policies that this class was instantiated with (CompositeRetryPolicy.retry_policies).

Parameters:
  • func – a function that should return the coroutine that will be awaited when retrying if RetryPolicy.retryable_exceptions is encountered.

  • before_hook – if provided will be called before every attempt.

  • failure_hook – if provided and is a callable it will be called everytime a retryable exception is encountered. If it is a mapping of exception types to callables, the first exception type that is a parent of any encountered exception will be called.

retryable(policy: RetryPolicy, failure_hook: Callable[[...], Coroutine[Any, Any, None]] | None = None) Callable[[Callable[[P], Coroutine[Any, Any, R]]], Callable[[P], Coroutine[Any, Any, R]]][source]

Decorator to be used to apply a retry policy to a coroutine

All retry policies need to derive from coredis.retry.RetryPolicy

class RetryPolicy(retries: int, retryable_exceptions: tuple[Type[BaseException], ...])[source]

Abstract retry policy

async call_with_retries(func: Callable[[...], Coroutine[Any, Any, R]], before_hook: Callable[[...], Coroutine[Any, Any, Any]] | None = None, failure_hook: Callable[[...], Coroutine[Any, Any, None]] | dict[Type[BaseException], Callable[[...], Coroutine[Any, Any, None]]] | None = None) R[source]
Parameters:
  • func – a function that should return the coroutine that will be awaited when retrying if RetryPolicy.retryable_exceptions is encountered.

  • before_hook – if provided will be called on every attempt.

  • failure_hook – if provided and is a callable it will be called everytime a retryable exception is encountered. If it is a mapping of exception types to callables, the first exception type that is a parent of any encountered exception will be called.