Módulo programado en Python

El módulo Sched es la biblioteca estándar, se puede usar en la creación de bots y otras aplicaciones de monitoreo y automatización. El módulo sched implementa un programador de eventos genérico para ejecutar tareas en momentos específicos. Proporciona herramientas similares como el programador de tareas en Windows o Linux, pero la principal ventaja es que las diferencias de la plataforma del módulo programado de Python se pueden ignorar .

Ejemplo:

# Python program for Creating 
# an event scheduler
  
  
import sched
import time
  
  
# Creating an instance of the
# scheduler class
scheduler = sched.scheduler(time.time, 
                            time.sleep)

Métodos básicos disponibles con instancias del programador

  • Scheduler.enter(): los eventos se pueden programar para que se ejecuten después de un retraso o en un momento específico. Para programarlos con un retraso, enter()se utiliza el método.

    Sintaxis: scheduler.enter(retraso, prioridad, acción, argumento=(), kwargs={})

    Parámetros:
    retardo: un número que representa el tiempo de retardo
    prioridad: valor de prioridad
    acción: función de llamada
    argumento: una tupla de argumentos

    Ejemplo:

    import sched
    import time
      
    # instance is created
    scheduler = sched.scheduler(time.time,
                                time.sleep)
      
    # function to print time 
    # and name of the event
    def print_event(name):
        print('EVENT:', time.time(), name)
      
    # printing starting time
    print ('START:', time.time())
      
    # first event with delay of
    # 1 second
    e1 = scheduler.enter(1, 1
                         print_event, ('1 st', ))
      
    # second event with delay of
    # 2 seconds
    e1 = scheduler.enter(2, 1
                         print_event, (' 2nd', ))
      
    # executing the events
    scheduler.run()

    Producción :

    START: 1580389814.152131
    EVENT: 1580389815.1548214 1 st
    EVENT: 1580389816.1533117  2nd
    
  • scheduler.enterabs() El enterabs()tiempo agrega un evento a la cola interna del planificador, a medida que run()se llama al método de un planificador, las entradas en la cola de un planificador se ejecutan una por una.

    Sintaxis: scheduler.enterabs(tiempo, prioridad, acción, argumento=(), kwargs={})

    Parámetros:
    tiempo: tiempo en el que se debe ejecutar el evento/acción
    prioridad: la prioridad del evento
    acción: la función que constituye un
    argumento de evento: argumentos posicionales para la función de evento
    kwargs: un diccionario de argumentos de palabras clave para la función de evento

    Ejemplo:

    # library imported
    import sched
    import time
      
    # instance is created
    scheduler = sched.scheduler(time.time,
                                time.sleep)
      
    # function to print time and
    # name of the event
    def print_event(name):
        print('EVENT:', time.time(), name)
      
    # printing starting time
    print ('START:', time.time())
      
    # event x with delay of 1 second
    # enters queue using enterabs method
    e_x = scheduler.enterabs(time.time()+1, 1,
                             print_event, 
                             argument = ("Event X", ));
      
    # executing the events
    scheduler.run()

    Producción :

    START: 1580389960.5845037
    EVENT: 1580389961.5875661 Event X
    
  • scheduler.cancel() Elimina el evento de la cola. Si el evento no es un evento actualmente en la cola, este método generará un ValueError.

    Sintaxis: scheduler.cancel(evento)

    Parámetro:
    evento: El evento que debe eliminarse.

    import sched
    import time
      
      
    # instance is created
    scheduler = sched.scheduler(time.time,
                                time.sleep)
      
    # function to print time and
    # name of the event
    def print_event(name):
        print('EVENT:', time.time(), name)
      
    # printing starting time
    print ('START:', time.time())
      
    # first event with delay 
    # of 1 second
    e1 = scheduler.enter(1, 1
                         print_event,
                         ('1 st', ))
      
      
    # second event with delay 
    # of 2 seconds
    e2 = scheduler.enter(2, 1
                         print_event,
                         (' 2nd', ))
      
    # removing 1st event from 
    # the event queue
    scheduler.cancel(e1)
      
    # executing the events
    scheduler.run()

    Producción :

    START: 1580390119.54074
    EVENT: 1580390121.5439944  2nd
    
  • scheduler.empty() Devuelve True si la cola de eventos está vacía. No necesita argumentos.

    Ejemplo:

    import sched
    import time
      
      
    # instance is created
    scheduler = sched.scheduler(time.time,
                                time.sleep)
      
    # function to print time 
    # and name of the event
    def print_event(name):
        print('EVENT:', time.time(), name)
      
    # printing starting time
    print ('START:', time.time())
      
    # checking if event queue is
    # empty or not
    print(scheduler.empty())
      
    # event entering into queue
    e1 = scheduler.enter(2, 1,
                         print_event,
                         ('1 st', ))
      
    # checking if event queue is 
    # empty or not
    print(scheduler.empty())
      
    # executing the events
    scheduler.run()

    Producción :

    START: 1580390318.1343799
    True
    False
    EVENT: 1580390320.136075 1 st
    
  • scheduler.queue Atributo de solo lectura que devuelve una lista de los próximos eventos en el orden en que se ejecutarán. Cada evento se muestra como una tupla con nombre con los siguientes campos: tiempo, prioridad, acción, argumento, kwargs.

    # library imported
    import sched
    import time
      
    # instance is created
    scheduler = sched.scheduler(time.time,
                                time.sleep)
      
    # function to print time 
    # and name of the event
    def print_event(name):
        print('EVENT:', time.time(), name)
      
    # printing starting time
    print ('START:', time.time())
      
    # event entering into queue
    e1 = scheduler.enter(2, 1,
                         print_event, 
                         ('1 st', ))
      
    # printing the details of
    # upcoming events in event queue
    print(scheduler.queue)
      
    # executing the events
    scheduler.run()

    Producción :

    INICIO: 1580390446.8743565
    [Evento (tiempo = 1580390448.8743565, prioridad = 1, acción =, argumento = (‘1 st’,), kwargs = {})]
    EVENTO: 1580390448.876916 1 st

Publicación traducida automáticamente

Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *