import traceback from celery.utils.log import get_task_logger class CronJob: def __init__( self, name, ): self.name = name self.logger = self.get_logger() def get_logger(self): """Create/Get the logger for this task""" logger = get_task_logger(self.name) return logger def safe_run(self): """Create a logger and execute run() in a try/except block to prevent crashing """ try: self.run() except Exception as e: self.logger.error("Failed to run cron job in safe mode.") self.logger.error(e) traceback.print_exc() def run(self): raise NotImplementedError("Not implemented error")