
    i-                     Z    S SK r S SKJr  S SKJr  S SKJrJrJr  S SK	J
r
   " S S\5      rg)    N)ThreadPoolExecutor)convert_yielded)BaseExecutorrun_coroutine_jobrun_job)iscoroutinefunction_partialc                   B   ^  \ rS rSrSrSU 4S jjrU 4S jrS rSrU =r	$ )TornadoExecutor
   aS  
Runs jobs either in a thread pool or directly on the I/O loop.

If the job function is a native coroutine function, it is scheduled to be run directly in the
I/O loop as soon as possible. All other functions are run in a thread pool.

Plugin alias: ``tornado``

:param int max_workers: maximum number of worker threads in the thread pool
c                 B   > [         TU ]  5         [        U5      U l        g N)super__init__r   executor)selfmax_workers	__class__s     J/app/mltbenv/lib/python3.13/site-packages/apscheduler/executors/tornado.pyr   TornadoExecutor.__init__   s    *;7    c                 F   > [         TU ]  X5        UR                  U l        g r   )r   start_ioloop)r   	scheduleraliasr   s      r   r   TornadoExecutor.start   s    i' ((r   c                 ^  ^ ^ UU 4S jn[        TR                  5      (       a-  [        TTR                  UT R                  R
                  5      nOAT R                  R                  [        TTR                  UT R                  R
                  5      n[        U5      nUR                  U5        g )Nc                    >  U R                  5       nTR                  TR                  U5        g ! [         a6    TR                  " TR                  /[
        R                  " 5       SS  Q76    g f = f)N   )result_run_job_successidBaseException_run_job_errorsysexc_info)feventsjobr   s     r   callback0TornadoExecutor._do_submit_job.<locals>.callback   s`    6 %%cfff5 ! A##CFF@S\\^AB-?@As   0 =A0/A0)r   funcr   _jobstore_alias_loggernamer   submitr   r   add_done_callback)r   r)   	run_timesr*   r'   s   ``   r   _do_submit_jobTornadoExecutor._do_submit_job   s    	6 'sxx00!S(()T\\5F5FA $$c119dll>O>OA A	H%r   )r   r   )r   )
__name__
__module____qualname____firstlineno____doc__r   r   r3   __static_attributes____classcell__)r   s   @r   r
   r
   
   s    	8)& &r   r
   )r%   concurrent.futuresr   tornado.genr   apscheduler.executors.baser   r   r   apscheduler.utilr   r
    r   r   <module>rA      s#    
 1 ' O O 8'&l '&r   