
    -Zj(                         d Z ddlmZmZ ddlmZ ddlmZmZ ddlm	Z	  e       Z
dZdZd	Zd
Zd Zd Zd Zd ZdefdZd Zy)uS   Agendador da sincronizacao periodica com o Geotab e da checagem de licença online.    )datetimetimezone)BackgroundScheduler   )securitylicense_online)run_syncgeotab_synclicense_check<      c                  l    t        j                         r t        j                         rt                y y y N)r   load_active_licensehas_geotab_credentialsr	        CD:\Nextcloud\SISTEMAS WINDOWS\frota-trucks-cliente\app\scheduler.py	_sync_jobr      s'    ##%(*I*I*K
 +L%r   c                  ,    t        j                          y r   )r   refresh_from_serverr   r   r   _license_jobr      s    &&(r   c                  ,    t        j                          y)zbA cada 5 min: se servidor marcar bloqueado, cria flag local que bloqueia o app na proxima request.N)r   apply_server_statusr   r   r   _status_jobr      s    &&(r   c            	         t         j                  ry t        j                         d   } t         j	                  t
        d| t               t         j	                  t        dt        t               t         j	                  t        dt        dt        j                  t        j                               t         j!                          y )Nsync_interval_minutesinterval)minutesidstatus_check)r   r    next_run_time)
_schedulerrunningr   load_settingsadd_jobr   _SYNC_JOB_IDr   LICENSE_CHECK_INTERVAL_MINUTES_LICENSE_JOB_IDr   STATUS_CHECK_INTERVAL_MINUTESr   nowr   utcstart)r   s    r   start_schedulerr.      s    %%'(?@Hy*h<P|Z9W\kl{J8UZh%-\\(,,%?  Ar   interval_minutesc                 p    t         j                  t              rt         j                  t        d|        y y )Nr   )triggerr   )r#   get_jobr'   reschedule_job)r/   s    r   
rescheduler4   (   s+    ,'!!,
L\!] (r   c                  R    t         j                  rt         j                  d       y y )NF)wait)r#   r$   shutdownr   r   r   shutdown_schedulerr8   -   s!    ' r   N)__doc__r   r   !apscheduler.schedulers.backgroundr    r   r   sync_servicer	   r#   r'   r)   r(   r*   r   r   r   r.   intr4   r8   r   r   r   <module>r>      sY    Y ' A & " "
!!#  ! 
))
^ ^
(r   