Articles of aiohttp

¿Se ejecutan varias aplicaciones aiohttp () en el mismo proceso?

¿Pueden aiohttp.web.Application() dos objetos aiohttp.web.Application() en el mismo proceso, por ejemplo, en puertos diferentes? Veo un montón de ejemplos de código aiohttp como: from aiohttp import web app = web.Application() app.router.add_get(‘/foo’, foo_view, name=’foo’) web.run_app(app, host=’0.0.0.0′, port=10000) Me pregunto si hay algún equivalente en el que se puedan configurar varias aplicaciones web.Applications() se pueden ejecutar al […]

Asyncio y rabbitmq (asynqp): cómo consumir de varias colas simultáneamente

Estoy tratando de consumir varias colas al mismo tiempo usando python, asyncio y asynqp . No entiendo por qué mi llamada a la función asyncio.sleep() no tiene ningún efecto. El código no se detiene allí. Para ser justos, en realidad no entiendo en qué contexto se ejecuta la callback, y si puedo ceder el control […]

Python 3.5 aiohttp bloquea incluso cuando se utiliza async / await

Estoy ejecutando un servidor web aiohttp de prueba: #!/usr/bin/env python3 from aiohttp import web import time import asyncio import random import string import logging logger = logging.getLogger(‘webserver’) logger.setLevel(logging.INFO) handler = logging.StreamHandler() formatter = logging.Formatter(‘%(asctime)s – %(name)s – %(levelname)s – %(message)s’) handler.setFormatter(formatter) logger.addHandler(handler) def randomword(length): return ”.join(random.choice(string.ascii_lowercase) for i in range(length)) async def hello(request): sleeptime = […]

Haciendo peticiones de 1 millón con aiohttp / asyncio – literalmente

Seguí este tutorial: https://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html y todo funciona bien cuando hago unas 50 000 solicitudes. Pero necesito hacer 1 mil llamadas a la API y luego tengo un problema con este código: url = “http://some_url.com/?id={}” tasks = set() sem = asyncio.Semaphore(MAX_SIM_CONNS) for i in range(1, LAST_ID + 1): task = asyncio.ensure_future(bound_fetch(sem, url.format(i))) tasks.add(task) responses = asyncio.gather(*tasks) […]

“Async con” en Python 3.4

Los documentos de Inicio para aiohttp dan el siguiente ejemplo de cliente: import asyncio import aiohttp async def fetch_page(session, url): with aiohttp.Timeout(10): async with session.get(url) as response: assert response.status == 200 return await response.read() loop = asyncio.get_event_loop() with aiohttp.ClientSession(loop=loop) as session: content = loop.run_until_complete( fetch_page(session, ‘http://python.org’)) print(content) Y dan la siguiente nota para los usuarios […]

Python aiohttp / asyncio – cómo procesar los datos devueltos

Estoy en el proceso de mover algún código síncrono a asyncio usando aiohttp. El código síncrono tardó 15 minutos en ejecutarse, así que espero mejorar esto. Tengo un código de trabajo que obtiene datos de algunas direcciones URL y devuelve el cuerpo de cada uno. Pero esto es solo contra 1 sitio de laboratorio, tengo […]

¿Cómo pasar parámetros adicionales a handle_client coroutine?

La forma recomendada de usar asyncio para un servidor de socket es: import asyncio async def handle_client(reader, writer): request = (await reader.read(100)).decode() response = “Data received.” writer.write(response.encode()) async def main(): loop.create_task(asyncio.start_server(handle_client, ‘localhost’, 15555)) loop = asyncio.get_event_loop() loop.create_task(main()) loop.run_forever() Esto funciona bien, pero ahora necesito recibir una solicitud de cliente adecuada y luego usar la biblioteca […]

¿Cómo ejecutar un servidor aiohttp en un hilo?

Este ejemplo de servidor aiohttp en un subproceso falla con un RuntimeError: There is no current event loop in thread ‘Thread-1′. error: import threading from aiohttp import web def aiohttp_server(): def say_hello(request): return web.Response(text=’Hello, world’) app = web.Application(debug=True) app.add_routes([web.get(‘/’, say_hello)]) web.run_app(app) t = threading.Thread(target=aiohttp_server) t.start() ¿Cómo ejecutar un servidor aiohttp en hilo?

La solicitud aiohttp de Python se detuvo pero no generó ninguna excepción

Yo uso aiohttp para solicitar la url. La mayoría de las veces se ejecuta normalmente, pero a veces se detiene sin generar ninguna excepción. Como puede ver en el código, detecto todas las excepciones, pero cuando se detiene, no se imprime ningún registro de excepciones. Los registros se ven como: get_live_league_games: while True try yield […]

asyncio aiohttp cancela un sondeo de solicitud http, devuelve un resultado

Estoy usando este código para crear una solicitud http cada 5 segundos. async def do_request(): async with aiohttp.ClientSession() as session: async with session.get(‘http://localhost:8000/’) as resp: print(resp.status) return await resp.text() No encontré un progtwigdor incorporado, así que escribí esta función (similar a javascript): async def set_interval(fn, seconds): while True: await fn() await asyncio.sleep(seconds) Y así es […]