Beispiel #1
0
def baixar(qtd):
    """ busca e salva a quantidade ``qtd`` de bandeiras """

    qt_bytes = 0
    qt_arqs = 0

    with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:

        pendentes = {}
        for (numero, sigla) in enumerate(ler_siglas(qtd), 1):
            nome = sigla + '-lgflag.gif'
            pendentes[executor.submit(baixar_uma, nome)] = numero, nome
            print '\t%3d\t%s' % (numero, nome)

        for future in concurrent.futures.as_completed(pendentes):
            numero, nome = pendentes[future]
            try:
                bytes = future.result()
            except Exception as exc:
                print('gerou erro ao baixar %s (#%s): %s' % (nome, numero, exc))
            else:
                qt_bytes += salvar(nome, bytes)
                qt_arqs += 1
                print '\t\t\t%3d\t%s --> salvo' % (numero, nome)

    return qt_bytes, qt_arqs
def baixar(qtd):
    """ busca a quantidade ``qtd`` de bandeiras """
    loop = asyncio.get_event_loop()

    for num, sigla in enumerate(ler_siglas(qtd), 1):
        nome = sigla + '-lgflag.gif'
        print('\t%3d\t%s' % (num, nome))
        loop.run_until_complete(processar(nome, num))

    return qt_bytes, qt_arqs
Beispiel #3
0
def baixar(qtd):
    """ busca a quantidade ``qtd`` de bandeiras """

    cliente = httpclient.AsyncHTTPClient()

    for num, sigla in enumerate(ler_siglas(qtd), 1):
        nome = sigla + '-lgflag.gif'
        processar(cliente, nome, num)

    ioloop.IOLoop.instance().start()
    return qt_bytes, qt_arqs
Beispiel #4
0
def baixar(qtd):
    """ busca a quantidade ``qtd`` de bandeiras """

    cliente = httpclient.AsyncHTTPClient()

    for num, sigla in enumerate(ler_siglas(qtd), 1):
        nome = sigla + '-lgflag.gif'
        print('\t%3d\t%s' % (num, nome))
        processar(cliente, nome, num)

    ioloop.IOLoop.instance().start()
    return qt_bytes, qt_arqs
Beispiel #5
0
def baixar(qtd):
    """ busca a quantidade ``qtd`` de bandeiras """

    http_client = httpclient.AsyncHTTPClient()

    for num, sigla in enumerate(ler_siglas(qtd), 1):
        nome = sigla + "-lgflag.gif"
        print("\t%3d\t%s" % (num, nome))
        url = BASE_URL + nome
        conj_baixar.add(nome)
        http_client.fetch(url, processar)

    ioloop.IOLoop.instance().start()
    return qt_bytes, qt_arqs
Beispiel #6
0
def baixar(qtd):
    """ busca a quantidade ``qtd`` de bandeiras """

    tarefas = []
    for num, sigla in enumerate(ler_siglas(qtd), 1):
        nome = sigla + '-lgflag.gif'
        print('\t%3d\t%s' % (num, nome))
        corrotina = processar(nome, num)
        tarefas.append(corrotina)

    loop = asyncio.get_event_loop()
    loop.run_until_complete(asyncio.wait(tarefas))

    return qt_bytes, qt_arqs
Beispiel #7
0
def baixar(qtd):
    """ busca a quantidade ``qtd`` de bandeiras """

    http_client = httpclient.AsyncHTTPClient()

    for num, sigla in enumerate(ler_siglas(qtd), 1):
        nome = sigla + '-lgflag.gif'
        print '\t%3d\t%s' % (num, nome)
        url = BASE_URL+nome
        proc = Processador(nome, num)
        http_client.fetch(url, proc.processar)

    ioloop.IOLoop.instance().start()
    return Processador.qt_bytes, Processador.qt_arqs
Beispiel #8
0
def baixar(qtd):
    """ busca a quantidade ``qtd`` de bandeiras """

    tarefas = []
    for num, sigla in enumerate(ler_siglas(qtd), 1):
        nome = sigla + '-lgflag.gif'
        print('\t%3d\t%s' % (num, nome))
        corrotina = processar(nome, num)
        tarefas.append(corrotina)

    loop = asyncio.get_event_loop()
    loop.run_until_complete(asyncio.wait(tarefas))

    return qt_bytes, qt_arqs
def baixar(qtd):
    """ busca a quantidade ``qtd`` de bandeiras """

    http_client = httpclient.AsyncHTTPClient()

    for num, sigla in enumerate(ler_siglas(qtd), 1):
        nome = sigla + '-lgflag.gif'
        print('\t%3d\t%s' % (num, nome))
        url = BASE_URL + nome
        conj_baixar.add(nome)
        http_client.fetch(url, processar)

    ioloop.IOLoop.instance().start()
    return qt_bytes, qt_arqs
Beispiel #10
0
def baixar(qtd):
    """ busca a quantidade ``qtd`` de bandeiras """

    cliente = httpclient.AsyncHTTPClient()

    for num, sigla in enumerate(ler_siglas(qtd), 1):
        nome = sigla + "-lgflag.gif"
        print "\t%3d\t%s" % (num, nome)
        processar(cliente, nome, num)

    print "*** antes do loop de eventos"
    ioloop.IOLoop.instance().start()
    print "*** depois do loop de eventos"

    return qt_bytes, qt_arqs
Beispiel #11
0
def baixar(qtd):
    """ busca e salva a quantidade ``qtd`` de bandeiras """
    qt_bytes = 0
    qt_arqs = 0

    for num, sigla in enumerate(ler_siglas(qtd), 1):
        nome = sigla + '-lgflag.gif'
        print '\t%3d\t%s' % (num, nome)
        url = BASE_URL+nome
        with contextlib.closing(urllib2.urlopen(url)) as img_orig:
            img = img_orig.read()
            qt_bytes += salvar(nome, img)
            qt_arqs += 1

    return qt_bytes, qt_arqs
Beispiel #12
0
def baixar(qtd):
    """ busca e salva a quantidade ``qtd`` de bandeiras """

    assert qtd <= MAX_THREADS, 'limite: %s downloads paralelos' % MAX_THREADS
    for num, sigla in enumerate(ler_siglas(qtd), 1):
        # baixar bandeiras com inicial 'a' ou 'b'
        nome = sigla + '-lgflag.gif'
        print '\t%3d\t%s' % (num, nome)
        tarefa = threading.Thread(target=baixar_uma, args=(nome, num))
        tarefa.start()
        conj_baixar.add(nome)

    while conj_baixar:
        pass

    return qt_bytes, qt_arqs
Beispiel #13
0
def baixar(qtd):
    """ busca e salva a quantidade ``qtd`` de bandeiras """
    qt_bytes = 0
    qt_arqs = 0

    for num, sigla in enumerate(ler_siglas(qtd), 1):
        # baixar bandeiras com inicial 'a' ou 'b'
        nome = sigla + '-lgflag.gif'
        print('\t%3d\t%s' % (num, nome))
        url = BASE_URL+nome
        with urllib.request.urlopen(url) as img_orig:
            img = img_orig.read()
            qt_bytes += salvar(nome, img)
            qt_arqs += 1

    return qt_bytes, qt_arqs
Beispiel #14
0
def baixar(qtd):
    """ busca e salva a quantidade ``qtd`` de bandeiras """

    assert qtd <= MAX_THREADS, 'limite: %s downloads paralelos' % MAX_THREADS
    for num, sigla in enumerate(ler_siglas(qtd), 1):
        # baixar bandeiras com inicial 'a' ou 'b'
        nome = sigla + '-lgflag.gif'
        print('\t%3d\t%s' % (num, nome))
        tarefa = threading.Thread(target=baixar_uma, args=(nome, num))
        tarefa.start()
        conj_baixar.add(nome)

    while conj_baixar:
        pass

    return qt_bytes, qt_arqs
def baixar(qtd):
    """ busca e salva a quantidade ``qtd`` de bandeiras """
    qt_bytes = 0
    qt_arqs = 0

    for num, sigla in enumerate(ler_siglas(qtd), 1):
        # baixar bandeiras com inicial 'a' ou 'b'
        nome = sigla + '-lgflag.gif'
        print('\t%3d\t%s' % (num, nome))
        url = BASE_URL + nome
        with contextlib.closing(urllib2.urlopen(url)) as img_orig:
            img = img_orig.read()
            qt_bytes += salvar(nome, img)
            qt_arqs += 1

    return qt_bytes, qt_arqs
Beispiel #16
0
def baixar(qtd):
    """ busca e salva a quantidade ``qtd`` de bandeiras """

    # criar threads
    for i in range(NUM_THREADS):
        tarefa = multiprocessing.Process(target=worker)
        tarefa.daemon = True
        tarefa.start()

    # enfileirar tarefas
    for numero, sigla in enumerate(ler_siglas(qtd), 1):
        # baixar bandeiras com inicial 'a' ou 'b'
        nome = sigla + '-lgflag.gif'
        print '\t%3d\t%s' % (numero, nome)
        fila.put((nome, numero))

    fila.join()

    return qt_bytes, qt_arqs
Beispiel #17
0
def baixar(qtd):
    """ busca e salva a quantidade ``qtd`` de bandeiras """

    # criar threads
    for i in range(NUM_THREADS):
        tarefa = threading.Thread(target=worker)
        tarefa.daemon = True
        tarefa.start()

    # enfileirar tarefas
    for numero, sigla in enumerate(ler_siglas(qtd), 1):
        # baixar bandeiras com inicial 'a' ou 'b'
        nome = sigla + '-lgflag.gif'
        print '\t%3d\t%s' % (numero, nome)
        fila.put((nome, numero))

    fila.join()

    return qt_bytes, qt_arqs
Beispiel #18
0
def baixar(qtd):
    """ busca e salva a quantidade ``qtd`` de bandeiras """

    assert qtd <= MAX_THREADS, 'limite: %s downloads paralelos' % MAX_THREADS
    tarefas = []
    for num, sigla in enumerate(ler_siglas(qtd), 1):
        # baixar bandeiras com inicial 'a' ou 'b'
        nome = sigla + '-lgflag.gif'
        print '\t%3d\t%s' % (num, nome)
        conj_baixar.add(nome)
        tarefa = multiprocessing.Process(target=baixar_uma, args=(nome, num))
        tarefa.start()
        tarefas.append(tarefa)

    while conj_baixar:
        print len(conj_baixar)
        time.sleep(1)

    for tarefa in tarefas:
        tarefa.terminate()

    return qt_bytes, qt_arqs