def _main(reactor, args, config):
summary_hooks = stethoscope.plugins.utils.instantiate_plugins(config,
namespace='stethoscope.batch.plugins.summary')
if args.input is None:
emails = config['BATCH_GET_EMAILS']()
else:
emails = [email.strip().strip('"') for email in args.input.readlines()]
logger.info("retrieving devices for {:d} users", len(emails))
results = dict()
deferreds = list()
cooperator = task.Cooperator()
work = work_generator(args, config, emails, results)
for idx in six.moves.range(args.limit):
deferreds.append(cooperator.coiterate(work))
deferred = defer.gatherResults(deferreds)
def log_results(_):
num_devices = sum(len(values) for values in six.itervalues(results))
logger.info("retrieved {:d} unique devices for {:d} users", num_devices, len(emails))
return _
deferred.addCallback(log_results)
if not args.collect_only:
for summary_hook in summary_hooks:
def _hook(_):
summary_hook.obj.post(results)
return _
deferred.addCallback(_hook)
return deferred
评论列表
文章目录