Mantén el hilo principal con vida: Ejecución no bloqueante con run_async.
No deberías necesitar una máquina virtual dedicada solo para correr un bot de Telegram junto a tu app en FastAPI. run_consumers(block=False) de wconnect corre en segundo plano sin bloquear tu servidor.
Así se implementa Non-Blocking Async Consumers en entornos reales con wconnect:
import time
from wconnect import Wtelegram, WMessage
bot = Wtelegram()
@bot.on_command(command="ping")
def ping(msg: WMessage):
bot.send(to=msg.chat_id, message="pong 🏓")
# Launch in background thread without blocking main application
thread = bot.run_consumers(block=False)
print(f"Bot listening in daemon thread: {thread.name}")
# Main application continues executing (FastAPI / ETL pipeline / worker)
for step in range(3):
print(f"Main loop executing batch #{step}")
time.sleep(1)
bot.stop_consumers()
Por qué es clave:
- Decoradores sin boilerplate (
@bot.on_command,@bot.on_message,@bot.consumer). - Streaming de archivos binarios directo desde RAM usando
WFile. - Poller daemon no bloqueante con
run_consumers(block=False).
¡Visita el repositorio en GitHub!
Top comments (0)