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

194
Visualizações
Balanceo de carga usando setTimeout

Sé que es un título clickbait, pero esta es una pregunta seria. Recientemente, en Sri Lanka, el gobierno implementó la aplicación https://fuelpass.gov.lk/ donde un ciudadano de Sri Lanka puede registrarse y verificar el combustible disponible para el vehículo registrado. (El sistema fue diseñado para controlar la cantidad de combustible disponible para un individuo ya que las importaciones de combustible se han ralentizado debido a la crisis económica).

Cuando revisé el sistema ayer, me di cuenta de que habían implementado la compilación de desarrollo en producción. Mientras revisaba el código, noté que en el componente de inicio de Login , hay una llamada setTimeout en el envío del formulario para mostrar una animación de carga.

El componente de inicio de sesión se veía así:

 export default () => { const [waiting, setWaiting] = useState(false) return( <Loading showLoading = {waiting}> <form onSubmit = {() => { setWaiting(true) setTimeout(async () => { await loginRequestCall() setWaiting(false) }, Math.floor(Math.random() * 5000) }}> <input /> <button>Send OTP</button> </form> </Loading> ) }

Captura de pantalla del código fuente: ingrese la descripción de la imagen aquí

La parte importante es que, cuando el usuario hace clic en Send OTP , muestra la pantalla de carga, solo después de esperar una cantidad de tiempo aleatoria, envía la solicitud.

Creé un video sobre esto y se volvió viral en Sri Lanka. Según los comentarios, algunas de las justificaciones (para usar setTimeout con una cantidad aleatoria de tiempo de espera) fueron las siguientes.

  1. Es un mecanismo para prevenir ataques DDos
  2. Manera de evitar que los usuarios envíen spam al botón Enviar OTP que causa múltiples solicitudes
  3. Es una forma económica de equilibrar la carga (forma de reducir la cantidad de solicitudes OTP)

No creo que si alguien quisiera DDos sería lo suficientemente tonto como para usar la automatización de la interfaz de usuario. No hay necesidad de setTimeout para evitar el spam también.

Lo cual me deja con el último punto.

Entonces mis preguntas son,

  1. ¿Es posible cargar el saldo usando setTimeout ?
  2. Si es así, ¿cómo distribuiría exactamente la carga?
  3. ¿Hay una razón válida para agregar un setTimout ?
about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

¿Es posible cargar el saldo usando setTimeout?

El equilibrio de carga es el proceso de distribución del tráfico de red entre varios servidores.

Dado que el equilibrio de carga no reduce la cantidad de llamadas sino que las distribuye, no es posible equilibrar la carga usando setTimeout

Si es así, ¿cómo distribuiría exactamente la carga?

Como mencioné, es imposible hacerlo con setTimeout , al menos no de una manera ineficiente y no pirateada.

¿Hay alguna razón válida para agregar un setTimout?

En mi opinión, este setTimeout podría estar destinado a usarse como una función de debounce para evitar que el usuario haga clic en el botón OTP varias veces si la retroalimentación no se proporciona de inmediato (pero aún así no funciona, ya que todas las llamadas se realizarán de todos modos).

Entonces, la respuesta es NO , en mi opinión, no hay ninguna razón válida para este setTimeout

about 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