hyb
2026-01-07 c7f60dc7e9a36596f0e0d1787bd0cca4e9b57bcb
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
Ë
 
çúh÷ ãó´—ddlZddlmZmZddlmZddlmZddl    m
Z
m Z ddl m Z mZdZdZGd    „d
e«ZGd „d e«ZGd „de«ZGd„de«Zy)éN)ÚABCÚabstractmethod)Ú WeightedList)ÚState)Ú    DatabasesÚ SyncDatabase)ÚNoValidDatabaseExceptionÚTemporaryUnavailableExceptioné
é có<—eZdZedefd„«Zededdfd„«Zy)ÚFailoverStrategyÚreturncó—y)z.Select the database according to the strategy.N©©Úselfs õiH:\项目\archive\测试组\脚本\Change_password\venv_build\Lib\site-packages\redis/multidb/failover.pyÚdatabasezFailoverStrategy.databaseó€ð     óÚ    databasesNcó—y)z&Set the database strategy operates on.Nr©rrs  rÚ set_databaseszFailoverStrategy.set_databasesrr)Ú__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ó—y)zExecute the failover strategy.Nrrs rÚexecutez FailoverStrategyExecutor.execute/rrN) rrrÚpropertyrÚintr"Úfloatr%rr'rr)rrrr r s…„Ø Øð  3ò óóð ðØð  ò óóð ðØð Ð*ò óóð ðð ˜ò óñ rr có4—eZdZdZdd„Zdefd„Zdeddfd„Zy)    ÚWeightBasedFailoverStrategyz6
    Failover strategy based on database weights.
    rNcó"—t«|_y©N)rÚ
_databasesrs rÚ__init__z$WeightBasedFailoverStrategy.__init__:s €Ü&›.ˆrcó–—|jD]0\}}|jjtjk(sŒ.|cSt d«‚)Nz-No valid database available for communication)r1ÚcircuitÚstateÚCBStateÚCLOSEDr    )rrÚ_s   rrz$WeightBasedFailoverStrategy.database=sD€ØŸ?™?ò     ‰KˆHaØ×Ñ×%Ñ%¬¯©Ó7Ø’ð     ô'Ð'VÓWÐWrrcó—||_yr0)r1rs  rrz)WeightBasedFailoverStrategy.set_databasesDs    €Ø#ˆr©rN)    rrrÚ__doc__r2rrrrrrrr.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    rr2z(DefaultFailoverStrategyExecutor.__init__Ms+€ð "ˆŒØ"3ˆÔØ-ˆÔØ%&ˆÔØ&'ˆÕrrcó—|jSr0)rArs rr"z1DefaultFailoverStrategyExecutor.failover_attemptsYs€à×&Ñ&Ð&rcó—|jSr0)rBrs rr%z.DefaultFailoverStrategyExecutor.failover_delay]s€à×#Ñ#Ð#rcó—|jSr0)r@rs rr'z(DefaultFailoverStrategyExecutor.strategyas €à~‰~Ðrcó*—    |jj«}|j«|S#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)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à€ð    Ø—~‘~×.Ñ.Ó0ˆHØ K‰KŒM؈OøÜ'ò    Ø×$Ñ$¨Ò)Ü(,¯    ©    « °d×6JÑ6JÑ(JÔ%Ø×&Ò&¨!Ñ+Ö&Ü—‘“ × 5Ñ 5Ò5Ø×%Ò%¨×)=Ñ)=Ñ=Õ%Ø×&Ò&¨!Ñ+Õ&à×%Ñ%¨×(?Ñ(?Ò?Ø— ‘ ” ؐä3ðRóðûð    ús‚+.®    D·CD Ä DNcó —d|_d|_yr?)rCrDrs rrJz&DefaultFailoverStrategyExecutor._reset{s€Ø !ˆÔØ!"ˆÕrr:)rrrr;ÚDEFAULT_FAILOVER_ATTEMPTSÚDEFAULT_FAILOVER_DELAYrr+r,r2r*r"r%r'rr)rJrrrr=r=Hs“„ñð";Ø 6ñ    
(à"ð
(ðð
(ðó    
(ðð' 3ò'óð'ðð$ ò$óð$ððÐ*òóðð˜óô,#rr=)rKÚabcrrÚredis.data_structurerÚredis.multidb.circuitrr6Úredis.multidb.databaserrÚredis.multidb.exceptionr    r
rNrOrr r.r=rrrú<module>rUsYðÛ ß#å-Ý2ß:÷ð
ÐØÐô     sô     ô ˜sô ô2$Ð"2ô$ô&5#Ð&>õ5#r