Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Listener to services should be on a separate thread and resilient by default

Abierto
#682 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
django, kafka, kubernetes, python

Línea de trabajo

Comienza con la ruta de inicio de la aplicación Django generada y con la inicialización de auth-service y event-listener mencionada en el issue. Compara el enfoque de un pod/contenedor separado con una inicialización en segundo plano resiliente y verifica después que la aplicación orientada al usuario se inicie sin que Kafka ni las cuentas estén completamente disponibles, y que la inicialización fallida se reintente sin provocar un bucle de reinicios por fallo.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

scope:python-runtime

Generated applications for django have a default behaviour to sync users which requires kafka and accounts to be fully operative at startup. If they're not fully operative, pods go on a crashloop.
This is not ideal because the user facing part of the application does not necessarily requires user login functionality.

Ideally we should set this kind of listeners on a separate pod/container.

A quicker proposal is the following:

if os.environ.get('KUBERNETES_SERVICE_HOST', None):
    # init the auth service when running in/for k8s
    import threading 
    from cloudharness_django.services import get_auth_service, init_services
    from cloudharness import log
    import time
    def start_auth_service():
        try:
            init_services()
        except:
            log.exception("Error initializing services. Retrying in 5 seconds...")
            time.sleep(5)
            start_auth_service()

    threading.Thread(target=start_auth_service).start()
    # start the kafka event listener when running in/for k8s
    def start_event_listener():
        try:
            import cloudharness_django.services.events
            log.info("User sync events listener started")
        except:
            log.exception("Error initializing event queue. Retrying in 5 seconds...")
            time.sleep(5)
            start_event_listener()
    threading.Thread(target=start_event_listener).start()
Lenguaje dominante
Python
Estrellas
19
Forks
5
Merge medio
11 d 20 h
PR fusionados (30 d)
1

Preparar el entorno

  • Sin Dockerfile ni archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de MetaCell/cloud-harness

Todos los issues de MetaCell/cloud-harness

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.