Adds tracebacks in error logs @strets123

This commit is contained in:
Ilan Steemers
2018-08-05 11:13:16 +02:00
parent 83d90664fb
commit bd062503c5
+17 -17
View File
@@ -4,32 +4,32 @@ from __future__ import division
from __future__ import print_function from __future__ import print_function
from __future__ import unicode_literals from __future__ import unicode_literals
from time import sleep
# external
import arrow
import ast
# Standard # Standard
import importlib import importlib
import signal import signal
import socket import socket
import ast import traceback
from time import sleep
from multiprocessing import Event, Process, Value, current_process
# external
import arrow
# Django # Django
from django import db
from django.utils import timezone from django.utils import timezone
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django import db from multiprocessing import Event, Process, Value, current_process
# Local # Local
from django_q import tasks from django_q import tasks
from django_q.brokers import get_broker
from django_q.compat import range from django_q.compat import range
from django_q.conf import Conf, logger, psutil, get_ppid, error_reporter, rollbar from django_q.conf import Conf, logger, psutil, get_ppid, error_reporter, rollbar
from django_q.models import Task, Success, Schedule 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.signing import SignedPackage, BadSignature
from django_q.status import Stat, Status 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): class Cluster(object):
@@ -287,7 +287,7 @@ def pusher(task_queue, event, broker=None):
try: try:
task_set = broker.dequeue() task_set = broker.dequeue()
except Exception as e: except Exception as e:
logger.error(e) logger.error(e, traceback.format_exc())
# broker probably crashed. Let the sentinel handle it. # broker probably crashed. Let the sentinel handle it.
sleep(10) sleep(10)
break break
@@ -298,7 +298,7 @@ def pusher(task_queue, event, broker=None):
try: try:
task = SignedPackage.loads(task[1]) task = SignedPackage.loads(task[1])
except (TypeError, BadSignature) as e: except (TypeError, BadSignature) as e:
logger.error(e) logger.error(e, traceback.format_exc())
broker.fail(ack_id) broker.fail(ack_id)
continue continue
task['ack_id'] = ack_id 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']) res = f(*task['args'], **task['kwargs'])
result = (res, True) result = (res, True)
except Exception as e: except Exception as e:
result = ('{}'.format(e), False) result = ('{} : {}'.format(e, traceback.format_exc()), False)
if error_reporter: if error_reporter:
error_reporter.report() error_reporter.report()
if rollbar: if rollbar:
@@ -540,11 +540,11 @@ def scheduler(broker=None):
# log it # log it
if not s.task: if not s.task:
logger.error( logger.error(
_('{} failed to create a task from schedule [{}]').format(current_process().name, _('{} failed to create a task from schedule [{}]').format(current_process().name,
s.name or s.id)) s.name or s.id))
else: else:
logger.info( 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 # default behavior is to delete a ONCE schedule
if s.schedule_type == s.ONCE: if s.schedule_type == s.ONCE:
if s.repeats < 0: if s.repeats < 0: