Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

2.5K
Visualizações
RuntimeError: no hay un bucle de eventos actual en el subproceso 'Subproceso-1', subprocesamiento múltiple y error asincrónico

Tengo un hilo que llama bucles asyncio, sin embargo, esto provoca la excepción mencionada:

 RuntimeError: There is no current event loop in thread 'Thread-1'.

Esta pregunta: RuntimeError: No hay un bucle de eventos actual en el subproceso en async + apscheduler se encontró con el mismo problema, sin embargo, se refirieron a un programador que no tengo.

Mi código es el siguiente:

 def worker(ws): l1 = asyncio.get_event_loop() l1.run_until_complete(ws.start()) l2 = asyncio.get_event_loop() l2.run_forever() if __name__ == '__main__': ws = Server() p = threading.Thread(target=worker,args=(ws,)) p.start() while True: try: #...do sth except KeyboardInterrupt: p.join() exit()
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

El nuevo hilo no tiene un bucle de eventos, por lo que debe pasarlo y configurarlo explícitamente:

 def worker(ws, loop): asyncio.set_event_loop(loop) loop.run_until_complete(ws.start()) if __name__ == '__main__': ws = Server() loop = asyncio.new_event_loop() p = threading.Thread(target=worker, args=(ws, loop,)) p.start()

Además, p.join() no terminará su secuencia de comandos correctamente ya que nunca detiene el servidor, por lo que su ciclo continuará ejecutándose, presumiblemente colgando el hilo. Debe llamar a algo como loop.call_soon_threadsafe(ws.shutdown) antes de unirse al hilo, idealmente esperando el apagado correcto del servidor.

over 4 years ago · Santiago Trujillo Relatório

0

Tuve este problema para ejecutar un servidor Bokeh en un hilo. Cuando traté de crear el servidor = Servidor ({'/': aplicación}, puerto = 0), obtendría este error. De la documentación de Tornado encontré lo siguiente...

 Class tornado.platform.asyncio.AnyThreadEventLoopPolicy[source]

Política de bucle de eventos que permite la creación de bucles en cualquier subproceso. La política de bucle de eventos asyncio predeterminada solo crea automáticamente bucles de eventos en los subprocesos principales. Otros subprocesos deben crear bucles de eventos explícitamente o asyncio.get_event_loop (y, por lo tanto, IOLoop.current) fallará. La instalación de esta política permite que los bucles de eventos se creen automáticamente en cualquier subproceso, coincidiendo con el comportamiento de las versiones de Tornado anteriores a la 5.0 (o 5.0 en Python 2).

Uso:

 asyncio.set_event_loop_policy(AnyThreadEventLoopPolicy())

http://www.tornadoweb.org/en/stable/asyncio.html#tornado.platform.asyncio.AnyThreadEventLoopPolicy

over 4 years ago · Santiago Trujillo Relatório

0

En Windows con Python 3.7.3, en lugar de crear el bucle de eventos directamente en el hilo,

Tengo que:

 asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy()) loop = asyncio.new_event_loop() asyncio.set_event_loop(loop)

De lo contrario, el problema persistiría.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda