tasks.py 933 B

123456789101112131415161718192021
  1. from .models import ProgrammedReport
  2. from django.utils import timezone
  3. import logging
  4. logger = logging.getLogger('django')
  5. # Task que determina que reportes deben ser enviados:
  6. # Ejecutado por Cron (Ver settings.py)
  7. def send_programmed_reports_task():
  8. timenow = timezone.now()
  9. for preport in ProgrammedReport.objects.all():
  10. try: # Este try-except evita que si haya errores en el envio de algun reporte se cancele el envio de los que siguen.
  11. if timenow > preport.due_date:
  12. sent = preport.send_report()
  13. if sent:
  14. logger.info("Se envio el Programmed Report ID: {}".format(preport.id))
  15. else:
  16. logger.info("No se pudo enviar el Programmed Report ID: {}".format(preport.id))
  17. except Exception:
  18. logger.exception("Error enviando Reporte Programado: {}".format(preport.id))