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
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
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
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
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 proc = Processador(nome, num) http_client.fetch(url, proc.processar) ioloop.IOLoop.instance().start() return Processador.qt_bytes, Processador.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
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
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
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 urllib.request.urlopen(url) as img_orig: img = img_orig.read() qt_bytes += salvar(nome, img) qt_arqs += 1 return qt_bytes, qt_arqs
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
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
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
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