Programar en Python

Fariba Laiq 10 octubre 2023
  1. Instale la biblioteca de horarios en Python
  2. Usar segundos como intervalo para programar un trabajo periódicamente
  3. Use minutos, horas y días como intervalo para programar un trabajo periódicamente
  4. Usar el tiempo en formato HH:MM como intervalo para programar un trabajo periódicamente
  5. Utilice el decorador de funciones para programar un trabajo
Programar en Python

Este tutorial demostrará el paquete Schedule en Python para programar trabajos periódicamente después de un intervalo de tiempo específico.

Schedule es una biblioteca de programador de procesos livianos en Python que se usa para programar una tarea para que se ejecute periódicamente en un intervalo de tiempo específico.

Podemos llamar a una función o a cualquier objeto al que se pueda llamar usando una sintaxis humana para automatizar tareas como enviar correos electrónicos, configurar un recordatorio, obtener el precio de una moneda o bitcoin periódicamente.

Instale la biblioteca de horarios en Python

Primero tenemos que instalar este paquete usando el siguiente comando para usarlo.

#Python 3.x
pip install schedule

Para programar un trabajo, usamos la siguiente sintaxis.

Sintaxis:

# Python 3.x
Schedule.every(interval).[timeframe].do(function)

Parámetros:

  1. El intervalo puede ser cualquier número entero.
  2. El período de tiempo puede ser segundos, minutos, horas, días o incluso el nombre de los días de la semana como lunes, martes, etc.
  3. El método do() toma el nombre de la función como argumento para programar.

Usar segundos como intervalo para programar un trabajo periódicamente

Tenemos un método llamado tarea en el siguiente código, programado para ejecutarse periódicamente cada cinco segundos. Definimos el intervalo de tiempo (cinco segundos en nuestro caso) como argumento del método every().

Especificamos la función a programar como argumento del método do() que se ejecuta automáticamente una vez que la máquina alcanza el tiempo especificado. Finalmente, ejecutamos la función run_pending() en el bucle while para ejecutar los trabajos programados de forma continua.

En la salida, el mensaje La tarea se está ejecutando sigue apareciendo cada cinco segundos según lo programado.

Código de ejemplo:

# Python 3.x
import schedule as s
import time as t


def task():
    print("Task is running")


s.every(5).seconds.do(task)
while True:
    s.run_pending()
    t.sleep(1)

Producción :

#Python 3.x
Task is running
Task is running
Task is running
Task is running
Task is running

Use minutos, horas y días como intervalo para programar un trabajo periódicamente

Si queremos cambiar el intervalo a minutos, horas o días de la semana específicos, podemos escribir el código de esta manera. La salida seguirá mostrando el mensaje de acuerdo con el tiempo establecido.

Código de ejemplo:

# Python 3.x
import schedule as s
import time as t


def task():
    print("Task is running")


s.every(5).minutes.do(task)
s.every(10).hours.do(task)
s.every().monday.do(task)
while True:
    s.run_pending()
    t.sleep(1)

Producción :

#Python 3.x
Task is running
Task is running
Task is running

Usar el tiempo en formato HH:MM como intervalo para programar un trabajo periódicamente

También podemos establecer un tiempo específico en formato HH:MM:SS como argumento de una función. El mensaje seguirá mostrándose periódicamente después de cada intervalo especificado.

Código de ejemplo:

# Python 3.x
import schedule as s
import time as t


def task():
    print("Task is running")


s.every().day.at("04:21").do(task)
s.every().monday.at("12:00").do(task)
while True:
    s.run_pending()
    t.sleep(1)

Producción :

#Python 3.x
Task is running

Utilice el decorador de funciones para programar un trabajo

Un decorador de funciones acepta una función como entrada, agrega alguna funcionalidad y devuelve una función. Usaremos el @repeat para programar la función de tarea aquí.

Código de ejemplo:

# Python 3.x
from schedule import every, run_pending, repeat
import time as t


@repeat(every(5).seconds)
def task():
    print("Task is running")


while True:
    run_pending()
    t.sleep(1)

Producción :

#Python 3.x
Task is running
Task is running
Task is running

Ejecutar un trabajo a la vez

Podemos ejecutar un trabajo a la vez cancelándolo después de que se ejecute usando CancelJob con la instancia de programación.

Código de ejemplo:

# Python 3.x
import schedule as s
import time as t


def task():
    print("Task is running")
    return s.CancelJob


s.every(5).seconds.do(task)
while True:
    s.run_pending()
    t.sleep(1)

Producción :

#Python 3.x
Task is running

Cancelar todos los trabajos

Podemos cancelar todos los trabajos del programador utilizando el método clear() con la instancia del programador. Aquí, hemos utilizado el método get_jobs() para imprimir los trabajos programados desde el programador.

Código de ejemplo:

# Python 3.x
import schedule as s
import time as t


def task():
    print("Task is running")


s.every(5).seconds.do(task)
print("Jobs:", s.get_jobs())
s.clear()
print("Jobs:", s.get_jobs())

Producción :

#Python 3.x
Jobs: [Every 5 seconds do task() (last run: [never], next run: 2022-04-08 16:59:37)]
Jobs: []
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn