comparison rhodecode/lib/celerylib/__init__.py @ 558:14559eb34003

more error catching on celery run_task
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 07 Oct 2010 19:24:03 +0200
parents 1e757ac98988
children d85b0948e539 f6c613fba757
comparison
equal deleted inserted replaced
557:29ec9ddbe258 558:14559eb34003
4 import logging 4 import logging
5 import os 5 import os
6 import sys 6 import sys
7 import traceback 7 import traceback
8 from hashlib import md5 8 from hashlib import md5
9 import socket
9 log = logging.getLogger(__name__) 10 log = logging.getLogger(__name__)
10 11
11 class ResultWrapper(object): 12 class ResultWrapper(object):
12 def __init__(self, task): 13 def __init__(self, task):
13 self.task = task 14 self.task = task
19 def run_task(task, *args, **kwargs): 20 def run_task(task, *args, **kwargs):
20 try: 21 try:
21 t = task.delay(*args, **kwargs) 22 t = task.delay(*args, **kwargs)
22 log.info('running task %s', t.task_id) 23 log.info('running task %s', t.task_id)
23 return t 24 return t
25 except socket.error, e:
26 if e.errno == 111:
27 log.debug('Unable to connect to celeryd. Sync execution')
28 else:
29 log.error(traceback.format_exc())
30 except KeyError, e:
31 log.debug('Unable to connect to celeryd. Sync execution')
24 except Exception, e: 32 except Exception, e:
25 print e 33 log.error(traceback.format_exc())
26 if e.errno == 111: 34
27 log.debug('Unnable to connect. Sync execution') 35 return ResultWrapper(task(*args, **kwargs))
28 else:
29 log.error(traceback.format_exc())
30 #pure sync version
31 return ResultWrapper(task(*args, **kwargs))
32 36
33 37
34 def locked_task(func): 38 def locked_task(func):
35 def __wrapper(func, *fargs, **fkwargs): 39 def __wrapper(func, *fargs, **fkwargs):
36 params = list(fargs) 40 params = list(fargs)