31 lines
755 B
Python
31 lines
755 B
Python
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") |