Imagina que necesitas ejecutar tareas en momentos específicos dentro de tu aplicación. Tal vez quieras enviar recordatorios, actualizar una base de datos cada cierto tiempo o automatizar procesos sin depender de librerías externas. Aquí es donde entra en juego import sched, un módulo integrado en Python que te permite programar eventos de forma sencilla y eficiente.
En este artículo, aprenderás cómo usar import sched para gestionar la ejecución de tareas programadas en Python, cómo establecer prioridades entre eventos y cómo integrar este módulo en tus proyectos.
¿Qué es import sched y por qué es útil?
Import sched es un módulo estándar de Python que proporciona una herramienta simple para programar la ejecución de funciones en el futuro. Se basa en una cola de eventos organizada por tiempos y prioridades, lo que permite un control preciso sobre cuándo se ejecutará cada tarea.
Podemos compararlo con un asistente personal que gestiona tu agenda. Si necesitas realizar varias tareas a diferentes horas, en lugar de recordarlas manualmente, el asistente se encarga de ejecutarlas en el momento adecuado. Del mismo modo, import sched te permite programar tareas sin preocuparte por recordar cuándo deben ejecutarse.
Algunas de las ventajas que puedes encontrar al usar import sched son:
- No requiere instalar librerías externas.
- Permite ejecutar tareas en momentos específicos.
- Funciona con prioridades, asegurando que los eventos más importantes se ejecuten primero.
- Compatible con aplicaciones multihilo.
¿Cómo usar import sched en Python?
Para empezar a programar eventos, primero necesitas importar el módulo y crear una instancia de la clase scheduler.
import sched
import time
s = sched.scheduler(time.time, time.sleep)
🔴 ¿Quieres Aprender a Programar con Python? 🔴
Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semanaAquí, la función time.time se usa para medir el tiempo y time.sleep para esperar entre eventos.
- Programar un evento simple: Para añadir una tarea a la cola de eventos, usa el método enter:
def mostrar_mensaje():
print("Evento ejecutado en:", time.time())
s.enter(5, 1, mostrar_mensaje) # Se ejecutará en 5 segundos
s.run()
Este código programa la función mostrar_mensaje para ejecutarse después de 5 segundos. La prioridad 1 indica que, si hay varios eventos al mismo tiempo, este tendrá más importancia.
- Programar múltiples eventos con diferentes tiempos: Puedes programar varios eventos con distintos tiempos de ejecución:
def tarea_1():
print("Tarea 1 ejecutada en:", time.time())
def tarea_2():
print("Tarea 2 ejecutada en:", time.time())
s.enter(3, 2, tarea_1) # Se ejecutará en 3 segundos
s.enter(1, 1, tarea_2) # Se ejecutará en 1 segundo
s.run()
Aquí, aunque tarea_1 tiene un tiempo de espera menor, tarea_2 tiene una prioridad más alta y se ejecutará primero.
- Programar eventos con argumentos: Si tu función necesita argumentos, puedes pasarlos mediante argument o kwargs:
def saludar(nombre):
print(f"Hola, {nombre}. Evento ejecutado en:", time.time())
s.enter(4, 1, saludar, argument=("Carlos",))
s.run()
Aquí, la función saludar recibirá «Carlos» como argumento cuando se ejecute.
Métodos de scheduler
El objeto scheduler ofrece varias funciones útiles para gestionar eventos, entre ellas:
- enter y enterabs:
- enter: Programa un evento después de un cierto tiempo.
- enterabs: Programa un evento en un tiempo absoluto.
hora_ejecucion = time.time() + 10
s.enterabs(hora_ejecucion, 1, mostrar_mensaje)
s.run()
Aquí, el evento se ejecutará exactamente en 10 segundos.
- cancel: Si necesitas cancelar un evento programado antes de que se ejecute, usa cancel:
evento = s.enter(5, 1, mostrar_mensaje)
s.cancel(evento) # Se elimina el evento antes de ejecutarse
- empty: Para verificar si la cola de eventos está vacía, usa empty:
if s.empty():
print("No hay eventos programados.")
Si quieres aprender más sobre automatización, programación avanzada y el desarrollo de aplicaciones eficientes, en KeepCoding tenemos el bootcamp de programación desde cero para ti. Te enseñamos a dominar herramientas como import sched y muchas otras tecnologías que te abrirán las puertas al mundo del desarrollo. No pierdas la oportunidad de transformar tu vida y entrar en el sector tecnológico, donde la demanda de profesionales sigue en aumento y las oportunidades nunca faltan.