Ejecutar una tarea en una fecha próxima (APScheduler)
Posted on jue 19 julio 2012 in Tutorial Python • 2 min read
En el artículo anterior se explican 2 formas de definir tareas de forma periódica y al estilo crond
. En este caso se explicará como ejecutar una función en una fecha próxima.
#!/usr/bin/env python
#Se importa date
from datetime import date
#Se importa Scheduler
from apscheduler.scheduler import Scheduler
#Se importa sleep
from time import sleep
# Se instancia la clase scheduler
sched = Scheduler()
#Se inicia el scheduler
sched.start()
# Se define la función a ser ejecutada.
#La función toma un texto y lo presenta en pantalla.
def Tarea(texto):
print texto
# La tarea será ejecutada el 19 de Julio de 2012.
fecha_ejecucion = date(2012, 07, 19)
# se alamacena la tarea en la variable tarea en caso que se quiera suspender
#Se le pasa la función Tarea, la fecha a ejecutar y los argumentos solicitados de la función
tarea = sched.add_date_job(Tarea, fecha_ejecucion, ['texto a escribir'])
#Se muestra las tareas definidas.
print sched.print_jobs()
#Se crea un ciclo de 10 iteraciones
#Donde se espera 60 minutos por cada iteracion
#Se muestra en pantalla las veces que se ejecuta.
for i in range(10):
print "---- %s" %i
sleep(3600)
#Se detiene el scheduler
sched.shutdown(wait=False)
Al ejecutar el programa se muestra lo siguiente:
ernesto@clara:~/bin/python/procesos$ sudo ./procesos3.py
Jobstore default:
Tarea (trigger: date[2012-07-19 00:00:00], next run at: 2012-07-19 00:00:00)
None
---- 0
---- 1
text
---- 2
---- 3
---- 4
---- 5
---- 6
---- 7
---- 8
---- 9
Con este artículo se muestran las tres formas de ejecutar procesos con APScheduler
(ejecución periódica, estilo crond y ejecución en una fecha próxima).
¡Haz tu donativo! Si te gustó el artículo puedes realizar un donativo con Bitcoin (BTC) usando la billetera digital de tu preferencia a la siguiente dirección: 17MtNybhdkA9GV3UNS6BTwPcuhjXoPrSzV
O Escaneando el código QR desde la billetera: