hyb
2025-12-23 7e5db3a16b423ec4a43459805e277979bcac7db5
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Ë
 
çúh'ãóf—ddlZddlZddlmZmZmZGd„d«Zdejdefd„Zd„Z    y)    éN)ÚAnyÚCallableÚ    Coroutinec    óà—eZdZdZd„Zd„Zd„Zdedefd„Z    dedefd    „Z
ded
ed e e e e fffd „Z d ejdedefd„Zd ejdedefd„Zd ejdedefd„Zy)ÚBackgroundSchedulerzf
    Schedules background tasks execution either in separate thread or in the running event loop.
    có`—d|_g|_tj«|_d|_y)NF)Ú _next_timerÚ _event_loopsÚ    threadingÚLockÚ_lockÚ_stopped©Úselfs õcH:\项目\archive\测试组\脚本\Change_password\venv_build\Lib\site-packages\redis/background.pyÚ__init__zBackgroundScheduler.__init__ s'€ØˆÔ؈ÔÜ—^‘^Ó%ˆŒ
؈ ócó$—|j«y©N)Ústoprs rÚ__del__zBackgroundScheduler.__del__s €Ø     ‰     rcóˆ—|j5|jr
    ddd«yd|_|jr!|jj«d|_|jD].}|j «sŒ|j |j«Œ0|jj«ddd«y#1swYyxYw)zB
        Stop all scheduled tasks and clean up resources.
        NT)    r rr    Úcancelr
Ú
is_runningÚcall_soon_threadsaferÚclear)rÚloops  rrzBackgroundScheduler.stops§€ðZ‰Zñ    &؏}Š}Ø÷    &ð    &ð!ˆDŒMà×ÒØ× Ñ ×'Ñ'Ô)Ø#'Ô ð×)Ñ)ò 9Ø—?‘?Õ$Ø×-Ñ-¨d¯i©iÕ8ð 9ð × Ñ × #Ñ #Ô %÷    &÷    &ñ    &úsB8¤AB8Á87B8Â8CÚdelayÚcallbackcóŽ—|j5|jr
    ddd«y    ddd«tj«}|j5|jj |«ddd«t jt||j||g|¢­d¬«}|j«y#1swYŒ‹xYw#1swYŒSxYw)zI
        Runs callable task once after certain delay in seconds.
        NT©ÚtargetÚargsÚdaemon) r rÚasyncioÚnew_event_loopr
Úappendr ÚThreadÚ_start_event_loop_in_threadÚ _call_laterÚstart)rrrr#rÚthreads      rÚrun_oncezBackgroundScheduler.run_once(s±€ðZ‰Zñ    Ø}Š}Ø÷    ð    Ø÷    ô
×%Ñ%Ó'ˆà Z‰Zñ    +Ø × Ñ × $Ñ $ TÔ *÷    +ô×!Ñ!Ü.ؘ×(Ñ(¨%°ÐA¸DÑAØô
ˆð
     ‰ ÷    ð    ú÷    +ð    +úóB/Á B;Â/B8Â;CÚintervalcóŽ—|j5|jr
    ddd«y    ddd«tj«}|j5|jj |«ddd«t jt||j||g|¢­d¬«}|j«y#1swYŒ‹xYw#1swYŒSxYw)zN
        Runs recurring callable task with given interval in seconds.
        NTr!) r rr%r&r
r'r r(r)Ú_call_later_recurringr+)rr/rr#rr,s      rÚ run_recurringz!BackgroundScheduler.run_recurring=s±€ðZ‰Zñ    Ø}Š}Ø÷    ð    Ø÷    ô
×%Ñ%Ó'ˆà Z‰Zñ    +Ø × Ñ × $Ñ $ TÔ *÷    +ô×!Ñ!Ü.ؘ×2Ñ2°H¸hÐNÈÑNØô
ˆð
     ‰ ÷    ð    ú÷    +ð    +úr.Úcoro.c‡ó‡‡‡‡‡K—‰j5‰jr
    ddd«y    ddd«tj«Št    ‰|g|¢­ŽŠˆˆˆˆˆfd„Љj ‰‰«‰_y#1swYŒKxYw­w)z¶
        Runs recurring coroutine with given interval in seconds in the current event loop.
        To be used only from an async context. No additional threads are created.
        Nc󲕗‰j5‰jr
    ddd«y    ddd«‰«‰j‰‰«‰_y#1swYŒ(xYwr©r rÚ
call_laterr    )r/rrÚtickÚwrappeds€€€€€rr8z5BackgroundScheduler.run_recurring_async.<locals>.tick`sPø€Ø—‘ñ Ø—=’=Ø÷ ð Ø ÷ ñ ŒIà#Ÿ™¨x¸Ó>ˆDÕ ÷  ð ús ŽA Á A)r rr%Úget_running_loopÚ_async_to_sync_wrapperr7r    )rr/r3r#rr8r9s``  @@@rÚrun_recurring_asyncz'BackgroundScheduler.run_recurring_asyncRs{üèø€ðZ‰Zñ    Ø}Š}Ø÷    ð    Ø÷    ô×'Ñ'Ó)ˆÜ(¨¨tÐ;°dÒ;ˆ÷    ?ð    ?ð Ÿ?™?¨8°TÓ:ˆÕ÷#    ð    üs!‡ B”A6¢    B¬A
BÁ6A?Á;Brcó¦—|j5|jr
    ddd«y    ddd«|j||g|¢­Ž|_y#1swYŒ#xYwrr6)rrrrr#s     rr*zBackgroundScheduler._call_laterlsS€ðZ‰Zñ    Ø}Š}Ø÷    ð    Ø÷    ð+˜4Ÿ?™?¨5°(ÐB¸TÒBˆÕ÷    ð    ús AÁAcó¸—|j5|jr
    ddd«y    ddd«|j|||j|||g|¢­Žy#1swYŒ,xYwr)r rr*Ú_execute_recurring©rrr/rr#s     rr1z)BackgroundScheduler._call_later_recurringtsd€ðZ‰Zñ    Ø}Š}Ø÷    ð    Ø÷    ð    ˆ×ÑØ (˜D×3Ñ3°T¸8ÀXð    
ØPTô    
÷    ð    ús AÁAcóR—|j5|jr
    ddd«y    ddd«    ||Ž|j5|jr
    ddd«y    ddd«|j|||j|||g|¢­Žy#1swYŒ^xYw#t$rYŒfwxYw#1swYŒGxYw)zR
        Executes recurring callable task with given interval in seconds.
        N)r rÚ    Exceptionr*r?r@s     rr?z&BackgroundScheduler._execute_recurring‚s¸€ðZ‰Zñ    Ø}Š}Ø÷    ð    Ø÷    ð    Ù d‰Oð
Z‰Zñ    Ø}Š}Ø÷    ð    Ø÷    ð    ˆ×ÑØ (˜D×3Ñ3°T¸8ÀXð    
ØPTô    
÷    ð    ûô ò    á ð    ú÷    ð    ús'B®B¿BÂB     BÂBÂB&N)Ú__name__Ú
__module__Ú __qualname__Ú__doc__rrrÚfloatrr-r2rrr<r%ÚAbstractEventLoopr*r1r?©rrrrsۄñòò ò&ð(˜eð¨xóð* eð°xóð*;Øð;Ø%-¨c°9¸SÀ#Às¸]Ñ3KÐ.KÑ%Ló;ð4CØ×-Ñ-ðCØ6;ðCØGOóCð 
à×'Ñ'ð 
ðð 
ðó     
ð
à×'Ñ'ð
ðð
ðô    
rrÚ
event_loopÚ call_soon_cbc    ó˜—tj|«|j||g|¢­Ž    |j«    tj|«}|D]}|j «Œ|j tj|ddiŽ«|j«y#t$rYŒwxYw#|j«wxYw#    tj|«}|D]}|j «Œ|j tj|ddiŽ«n#t$rYnwxYw|j«w#|j«wxYwxYw)z¿
    Starts event loop in a thread and schedule callback as soon as event loop is ready.
    Used to be able to schedule tasks using loop.call_later.
 
    :param event_loop:
    :return:
    Úreturn_exceptionsTN)
r%Úset_event_loopÚ    call_soonÚ run_foreverÚ    all_tasksrÚrun_until_completeÚgatherrBÚclose)rJrKr#ÚpendingÚtasks     rr)r)Ÿs6€ô ×ј:Ô&Ø€J×ј zÐ9°DÓ9ðØ×ÑÔ ð     ä×'Ñ'¨
Ó3ˆGØò Ø— ‘ • ð ð × )Ñ )Ü—‘ Ð@¸4Ñ@ô ð × Ñ Õ øôò    Ù ð    ûð × Ñ Õ ûð     ä×'Ñ'¨
Ó3ˆGØò Ø— ‘ • ð ð × )Ñ )Ü—‘ Ð@¸4Ñ@õ øôò    Ù ð    úð × Ñ Õ øˆJ× Ñ Õ ýsf«C¼AB    B)Â&B,Â(B)Â)B,Â,B>ÃE    ÃADÄD4Ä    D ÄD4ÄD Ä D4Ä#E    Ä4EÅE    c󇇇‡—ˆˆˆˆfd„}|S)aŸ
    Wraps an asynchronous function so it can be used with loop.call_later.
 
    :param loop: The event loop in which the coroutine will be executed.
    :param coro_func: The coroutine function to wrap.
    :param args: Positional arguments to pass to the coroutine function.
    :param kwargs: Keyword arguments to pass to the coroutine function.
    :return: A regular function suitable for loop.call_later.
    có@•—tj‰‰i‰¤Ž‰¬«y)N)r)r%Ú ensure_future)r#Ú    coro_funcÚkwargsrs€€€€rr9z'_async_to_sync_wrapper.<locals>.wrappedÈsø€ä×Ñ™i¨Ð8°Ñ8¸tÖDrrI)rrZr#r[r9s```` rr;r;½sû€÷Eð €Nr)
r%r ÚtypingrrrrrHr)r;rIrrú<module>r]s>ðÛÛß+Ñ+÷V
ñV
ðrØ×)Ñ)ðØ9Aóó<r