def consumer_queue(proc_id, queue):
    loader = Loader(conf)
    while True:
        try:
            consumer_data = queue.get(proc_id, 1)
            if consumer_data == 'STOP':
                queue.put('STOP')
                break

            for data in consumer_data:
                v = Validation()
                v.create(data)
                loader.load(v)
        except Empty:
            pass
    loader.close()
Exemple #2
0
    conf = json.loads(f.read())
reader = ResponseReader(conf)

loader = Loader(conf)

# get the set, validate, store outputs
# but need to paginate because of ram issues
for i in xrange(0, 668110, 25):
    print 'QUERYING {0}:{1}'.format(i, 25)
    for response in reader.read('', limit=25, offset=i):
        print response.source_url

        xml = response.cleaned_content
        stderr = validate_in_memory(xml)

        data = {
            "response_id": response.id,
            "valid": 'Error at' not in stderr,
            "validated_on": datetime.now()
        }
        if stderr:
            data.update({"errors": [s.strip() for s in stderr.split('\n\n')]})
            print '\t{0}'.format(stderr[:100])

        try:
            v = Validation()
            v.create(data)
            loader.load(v)
        except Exception as ex:
            print ex