Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

381
Views
Creando un trabajo cron usando un ciclo while

Hay varias bibliotecas (especialmente para NodeJS y Javascript) que le permiten implementar trabajos cron y luego alojarlos en un servidor.

En esencia, los trabajos cron me parecen nada más que tareas repetitivas que se ejecutan en una hora/fecha específica en un día.

Por lo tanto, me preguntaba cuál es la diferencia entre estas bibliotecas y, digamos, un ciclo while personalizado. Por ejemplo en Javascript podríamos escribir:

 var keepRunning = true while (keepRunning) { setTimeout(function () { // call function to be executed when time constraint satisfied }, 5000); }

Mis preguntas son por lo tanto:

  • ¿Por qué usamos bibliotecas de trabajos cron? ¿Cuáles son los beneficios por encima de una función personalizada como la anterior?
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Esto no funcionaría como cabría esperar:

 var keepRunning = true while (keepRunning) { setTimeout(function () { // call function to be executed when time constraint satisfied }, 5000); }

Ese código programará nuevas devoluciones de llamada de setTimeout lo más rápido posible mientras que keepRuning es verdadero, nunca deshaciendo la pila de llamadas y permitiendo que el bucle de eventos ejecute cualquiera de esas devoluciones de llamada. Es probable que consuma toda su memoria sin ejecutar el código programado ni una sola vez.

Lo que puedes hacer es algo como esto:

 var keepRunning = true; function run() { if (keepRunning) { // call function to be executed when time constraint satisfied setTimeout(run, 5000); } } setTimeout(run, 5000);

Si desea programar todas las devoluciones de llamada a la vez, puede hacer algo como esto:

 for (let i = 1; i <= 100; i++) { setTimeout(function () { // call function to be executed when time constraint satisfied }, 5000 * i); }

pero en este ejemplo, debe multiplicar el tiempo de espera por la variable de iteración para asegurarse de que no estén programados para ejecutarse al mismo tiempo, es decir, todavía están programados todos a la vez, pero luego se ejecutan en diferentes momentos.

Recuerde que JavaScript se ejecuta hasta el final y las devoluciones de llamada se ejecutan más tarde cuando la pila de llamadas se desenrolla. También es importante que los bucles for y while bloqueen la ejecución del bucle de eventos y no se pueda manejar ningún evento mientras se ejecuta el bucle.

over 4 years ago · Santiago Trujillo Report

0

Cron maneja eventos específicos de tiempo mucho mejor que esto. Si quisiera que algo sucediera a las 9 a.m. todos los días, absolutamente tendría que usar Cron sobre algún método como este.

Cron mide el tiempo a partir de la época y es la forma más precisa de programar tareas. También me imagino que daría como resultado un mejor rendimiento que lo que sugieres.

¿Por qué NO usarías Cron?

over 4 years ago · Santiago Trujillo Report

0

Una biblioteca es una colección de código útil. Esas colecciones suelen agrupar una cantidad importante de funciones, objetos, etc.

Su ejemplo fue solo una situación que tenía muy poca versatilidad. Las bibliotecas proporcionarían muchas más opciones para su bucle e irían más allá de solo abordar la tasa, sino también otros factores (dependiendo de la biblioteca específica a la que se refiera).

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!