diff --git a/cco/processor/controller.py b/cco/processor/controller.py index b56a0f3..02341bb 100644 --- a/cco/processor/controller.py +++ b/cco/processor/controller.py @@ -18,9 +18,10 @@ def loop(jobname, fct, data, skip=0, limit=None, break for row in data: r = fct(row) - result['count'] += 1 - if r is not None: - result[r] += 1 + #result['count'] += 1 + #if r is not None: + # result[r['info']] += 1 + update_counters(result, r) if result['count'] % bsize == 0: logger.info('loop %s: %s' % (jobname, result)) if action is not None: @@ -31,3 +32,18 @@ def loop(jobname, fct, data, skip=0, limit=None, action() logger.info('loop %s finished: %s' % (jobname, result)) return result + +def update_counters(result, msg): + result['count'] += 1 + if msg is None: + return + if isinstance(msg, dict): + info = msg.get('info') + if info == 'error': + result['error'] += 1 + return + key = msg['action'] + 'd' + if key in result: + result[key] += 1 + else: + result[msg] += 1