hyb
2025-11-18 7539e6f48c75dcaeb808359cccfd1c0d0d182ce8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Ë
 
çúh3ãó´—ddlZddlmZmZddlmZmZddlmZddl    m
Z ddl m Z mZdZdZGd    „d
e«ZGd „d e«ZGd „de«ZGd„de«Zy)éN)ÚABCÚabstractmethod)Ú AsyncDatabaseÚ    Databases)Ú WeightedList)ÚState)ÚNoValidDatabaseExceptionÚTemporaryUnavailableExceptioné
é có<—eZdZedefd„«Zededdfd„«Zy)ÚAsyncFailoverStrategyÚreturncƒó K—y­w)z.Select the database according to the strategy.N©©Úselfs õqH:\项目\archive\测试组\脚本\Change_password\venv_build\Lib\site-packages\redis/asyncio/multidb/failover.pyÚdatabasezAsyncFailoverStrategy.databaseó èø€ð     ùó‚Ú    databasesNcó—y)z&Set the database strategy operates on.Nr©rrs  rÚ set_databasesz#AsyncFailoverStrategy.set_databasess€ð     ó)Ú__name__Ú
__module__Ú __qualname__rrrrrrrrrrs=„Øð   ò óð ðð  yð °Tò óñ rrcó‚—eZdZeedefd„««Zeedefd„««Zeede    fd„««Z
ede fd„«Z y)ÚFailoverStrategyExecutorrcó—y)z The number of failover attempts.Nrrs rÚfailover_attemptsz*FailoverStrategyExecutor.failover_attemptsó€ð     rcó—y)z$The delay between failover attempts.Nrrs rÚfailover_delayz'FailoverStrategyExecutor.failover_delay#r$rcó—y)zThe strategy to execute.Nrrs rÚstrategyz!FailoverStrategyExecutor.strategy)r$rcƒó K—y­w)zExecute the failover strategy.Nrrs rÚexecutez FailoverStrategyExecutor.execute/rrN) rrrÚpropertyrÚintr#Úfloatr&rr(rr*rrrr!r!s…„Ø Øð  3ò óóð ðØð  ò óóð ðØð Ð/ò óóð ðð ˜}ò óñ rr!có2—eZdZdZd„Zdefd„Zdeddfd„Zy)ÚWeightBasedFailoverStrategyz6
    Failover strategy based on database weights.
    có"—t«|_y©N)rÚ
_databasesrs rÚ__init__z$WeightBasedFailoverStrategy.__init__:s €Ü&›.ˆrrcƒóžK—|jD]0\}}|jjtjk(sŒ.|cSt d«‚­w)Nz-No valid database available for communication)r2ÚcircuitÚstateÚCBStateÚCLOSEDr    )rrÚ_s   rrz$WeightBasedFailoverStrategy.database=sHèø€ØŸ?™?ò     ‰KˆHaØ×Ñ×%Ñ%¬¯©Ó7Ø’ð     ô'Ð'VÓWÐWùs
‚:A ½A rNcó—||_yr1)r2rs  rrz)WeightBasedFailoverStrategy.set_databasesDs    €Ø#ˆr)    rrrÚ__doc__r3rrrrrrrr/r/5s-„ñò)ðX  óXð$ yð$°Tô$rr/có€—eZdZdZeefdededefd„Z    e
defd„«Z e
defd„«Z e
defd    „«Z defd
„Zd d „Zy )ÚDefaultFailoverStrategyExecutorz+
    Executes given failover strategy.
    r(r#r&cóJ—||_||_||_d|_d|_y©Nr)Ú    _strategyÚ_failover_attemptsÚ_failover_delayÚ_next_attempt_tsÚ_failover_counter)rr(r#r&s    rr3z(DefaultFailoverStrategyExecutor.__init__Ms+€ð "ˆŒØ"3ˆÔØ-ˆÔØ%&ˆÔØ&'ˆÕrrcó—|jSr1)rArs rr#z1DefaultFailoverStrategyExecutor.failover_attemptsYs€à×&Ñ&Ð&rcó—|jSr1)rBrs rr&z.DefaultFailoverStrategyExecutor.failover_delay]s€à×#Ñ#Ð#rcó—|jSr1)r@rs rr(z(DefaultFailoverStrategyExecutor.strategyas €à~‰~ÐrcƒóFK—    |jj«ƒd{–—†}|j«|S7Œ#t$rÛ}|jdk(r<t j
«|j z|_|xjdz c_nUt j
«|jk\r4|xj|j z c_|xjdz c_|j|jkDr|j«|‚td«‚d}~wwxYw­w)NrézhNo database connections currently available. This is a temporary condition - please retry the operation.)
r@rÚ_resetr    rCÚtimerBrDrAr
)rrÚes   rr*z'DefaultFailoverStrategyExecutor.executeesíèø€ð    Ø!Ÿ^™^×4Ñ4Ó6×6ˆHØ K‰KŒM؈Oð7ùô(ò    Ø×$Ñ$¨Ò)Ü(,¯    ©    « °d×6JÑ6JÑ(JÔ%Ø×&Ò&¨!Ñ+Ö&Ü—‘“ × 5Ñ 5Ò5Ø×%Ò%¨×)=Ñ)=Ñ=Õ%Ø×&Ò&¨!Ñ+Õ&à×%Ñ%¨×(?Ñ(?Ò?Ø— ‘ ” ؐä3ðRóðûð    üs2‚D!„:¡8¢:·D!¸:º    DÁCDÄDÄD!Ncó —d|_d|_yr?)rCrDrs rrJz&DefaultFailoverStrategyExecutor._reset{s€Ø !ˆÔØ!"ˆÕr)rN)rrrr;ÚDEFAULT_FAILOVER_ATTEMPTSÚDEFAULT_FAILOVER_DELAYrr,r-r3r+r#r&r(rr*rJrrrr=r=Hs“„ñð";Ø 6ñ    
(à'ð
(ðð
(ðó    
(ðð' 3ò'óð'ðð$ ò$óð$ððÐ/òóðð˜}óô,#rr=)rKÚabcrrÚredis.asyncio.multidb.databaserrÚredis.data_structurerÚredis.multidb.circuitrr7Úredis.multidb.exceptionr    r
rNrOrr!r/r=rrrú<module>rUsYðÛ ß#çCÝ-Ý2÷ð
ÐØÐô     ˜Cô     ô ˜sô ô2$Ð"7ô$ô&5#Ð&>õ5#r