From bd062503c5be50d7b9170834899defd92b81dbee Mon Sep 17 00:00:00 2001 From: Ilan Steemers Date: Sun, 5 Aug 2018 11:13:16 +0200 Subject: [PATCH] Adds tracebacks in error logs @strets123 --- django_q/cluster.py | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/django_q/cluster.py b/django_q/cluster.py index d25c428..f9a2a91 100644 --- a/django_q/cluster.py +++ b/django_q/cluster.py @@ -4,32 +4,32 @@ from __future__ import division from __future__ import print_function from __future__ import unicode_literals +from time import sleep + +# external +import arrow +import ast # Standard import importlib import signal import socket -import ast -from time import sleep -from multiprocessing import Event, Process, Value, current_process - -# external -import arrow - +import traceback # Django +from django import db from django.utils import timezone from django.utils.translation import ugettext_lazy as _ -from django import db +from multiprocessing import Event, Process, Value, current_process # Local from django_q import tasks +from django_q.brokers import get_broker from django_q.compat import range from django_q.conf import Conf, logger, psutil, get_ppid, error_reporter, rollbar from django_q.models import Task, Success, Schedule +from django_q.queues import Queue +from django_q.signals import pre_execute from django_q.signing import SignedPackage, BadSignature from django_q.status import Stat, Status -from django_q.brokers import get_broker -from django_q.signals import pre_execute -from django_q.queues import Queue class Cluster(object): @@ -287,7 +287,7 @@ def pusher(task_queue, event, broker=None): try: task_set = broker.dequeue() except Exception as e: - logger.error(e) + logger.error(e, traceback.format_exc()) # broker probably crashed. Let the sentinel handle it. sleep(10) break @@ -298,7 +298,7 @@ def pusher(task_queue, event, broker=None): try: task = SignedPackage.loads(task[1]) except (TypeError, BadSignature) as e: - logger.error(e) + logger.error(e, traceback.format_exc()) broker.fail(ack_id) continue task['ack_id'] = ack_id @@ -380,7 +380,7 @@ def worker(task_queue, result_queue, timer, timeout=Conf.TIMEOUT): res = f(*task['args'], **task['kwargs']) result = (res, True) except Exception as e: - result = ('{}'.format(e), False) + result = ('{} : {}'.format(e, traceback.format_exc()), False) if error_reporter: error_reporter.report() if rollbar: @@ -540,11 +540,11 @@ def scheduler(broker=None): # log it if not s.task: logger.error( - _('{} failed to create a task from schedule [{}]').format(current_process().name, - s.name or s.id)) + _('{} failed to create a task from schedule [{}]').format(current_process().name, + s.name or s.id)) else: logger.info( - _('{} created a task from schedule [{}]').format(current_process().name, s.name or s.id)) + _('{} created a task from schedule [{}]').format(current_process().name, s.name or s.id)) # default behavior is to delete a ONCE schedule if s.schedule_type == s.ONCE: if s.repeats < 0: