elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  problema con sistema de queue, misma funcion se ejecuta N veces. (N = usuarios)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema con sistema de queue, misma funcion se ejecuta N veces. (N = usuarios)  (Leído 4,068 veces)
eimattz

Desconectado Desconectado

Mensajes: 11


Ver Perfil
problema con sistema de queue, misma funcion se ejecuta N veces. (N = usuarios)
« en: 1 Julio 2021, 11:57 am »

Buenas como va. No creo que exista mejor lugar para preguntar esto.
El problema es el siguiente.


En mi pagina web tengo un sistema de queue, donde supongamos, 4 usuarios aceptan la lobby. Por cada usuario que acepta, el id del usuario se añade a un array y se chequea si array = 4 y entonces ejecutamos creatematch(). Este codigo es ejecutado en el FRONTEND, por lo tanto se ejecuta la funcion 4 veces (una vez por usuario), creándome 4 matchs. La funcion creatematch() basicamente envia un objeto a mi db en firebase.

Mi pregunta es evidente... como hago para que solo se ejecute una vez creatematch()?

Saludos


« Última modificación: 1 Julio 2021, 12:02 pm por eimattz » En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: problema con sistema de queue, misma funcion se ejecuta N veces. (N = usuarios)
« Respuesta #1 en: 1 Julio 2021, 15:23 pm »

Quizás está función no debería correr en el frontend. Una alternativa sencilla que veo es que el que crea el lobby es el único que pueda ejecutar "createMatch".


En línea

eimattz

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: problema con sistema de queue, misma funcion se ejecuta N veces. (N = usuarios)
« Respuesta #2 en: 1 Julio 2021, 23:13 pm »

Pensé en eso, pero suponiendo que esta persona sale de la página luego de aceptar, entonces la partida nunca se iniciaría.

Ahora suponiendo que el servidor ejecuta la función, alguien o algo tiene que avisarle para que la ejecute, por lo que siento que estoy en el mismo problema y no se me ocurren formas "eficientes"
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: problema con sistema de queue, misma funcion se ejecuta N veces. (N = usuarios)
« Respuesta #3 en: 2 Julio 2021, 00:12 am »

Pensé en eso, pero suponiendo que esta persona sale de la página luego de aceptar, entonces la partida nunca se iniciaría.

Ahora suponiendo que el servidor ejecuta la función, alguien o algo tiene que avisarle para que la ejecute, por lo que siento que estoy en el mismo problema y no se me ocurren formas "eficientes"

Si es una función que realiza el cliente pues entonces si, la tiene que enviar el cliente. Si no necesita interacción con el cliente, el servidor puede empezar un contador para empezar la partida después de X tiempo una vez que se hayan unido los 4 jugadores al lobby.

Si el creador del lobby abandona el lobby, pues debería botar a los otros jugadores del lobby o cambiar el creador del lobby por algún otro jugador en el lobby (quizás el segundo jugador que se unió al lobby).
En línea

eimattz

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: problema con sistema de queue, misma funcion se ejecuta N veces. (N = usuarios)
« Respuesta #4 en: 2 Julio 2021, 03:24 am »

Basicamente tendria que hacer un microservicio que chequee cada x tiempo si un array esta completo o no, y en base a eso ejecutar la funcion. Estoy en lo correcto?
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: problema con sistema de queue, misma funcion se ejecuta N veces. (N = usuarios)
« Respuesta #5 en: 2 Julio 2021, 04:50 am »

Basicamente tendria que hacer un microservicio que chequee cada x tiempo si un array esta completo o no, y en base a eso ejecutar la funcion. Estoy en lo correcto?

No, si optas por está ruta simplemente revisas si el arreglo contiene 4 elementos a la hora de agregar un nuevo elemento. Entonces empiezas la partida.
En línea

eimattz

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: problema con sistema de queue, misma funcion se ejecuta N veces. (N = usuarios)
« Respuesta #6 en: 5 Enero 2022, 18:56 pm »

Solucion:

Para poder ejecutar la creación de recursos de forma idempotente, el cliente (que puede ser un frontend u otro microservicio o aplicación, genere el identificador (puedes usar un uuid estandar para ello). Esto lo que permite es poder lanzar la misma operación las veces que quieras, porque si el recurso ya existe, como estás pasando el mismo id, no se crearía otro distinto.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines