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 argumentosEjemplo:
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 querun()
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 eventoEjemplo:
# 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