process.nextTick

8 views
Skip to first unread message

Normando Hall

unread,
Jun 24, 2014, 7:04:25 PM6/24/14
to weban...@googlegroups.com
setInterval o process.nextTick?

Si el tiempo que demanda la tarea es superior a setInterval, es mejor emplear process.nextTick?

Saludos


--
 
Logo

Normando Hall
CTO
(0341) 155-852144 · norman...@dvision.com.ar

dVision S.A.
Av. Belgrano 929 - Rosario - Argentina
Te: (0341) 424-1302 in...@dvision.com.ar · dvision.com.ar

Tecnología en manos creativas

  facebook  linkedIn   Google+  

eco No me imprimas si no es necesario. Protejamos el medio ambiente

Este mensaje y todos los archivos adjuntos son para uso exclusivo del destinatario y pueden contener información confidencial o propietaria, cuya divulgación es sancionada por ley. Si usted recibió este mensaje erróneamente, por favor notifíquenos respondiendo al remitente, borre el mensaje original y destruya las copias (impresas o grabadas en cualquier medio) que pueda haber realizado del mismo.

This message and any attachments are for exclusive usage of an addressee and may contain confidential or privileged information whose disclosure is subject to penalty by law. If you are not the addressee, please notify the sender by return e-mail, delete the original message and destroy any existing copy no matter if printed or recorded.

Demián Andrés Rodriguez

unread,
Jun 24, 2014, 7:30:53 PM6/24/14
to weban...@googlegroups.com
Eh? son cosas distintas. 
En todo caso estarías comparando setTimeout vs nextTick. Este último está mas optimizado si lo que buscás es hacer un 'defer' o emular setTimeout(func, 0) para llamar un callback en forma asincrónica en la próxima ejecución del event loop.


--
--
-------------------------------------------------------------------
Para obtener más opciones, visita este grupo en
http://groups.google.com/group/webandbeer?hl=es.
El blog del grupo
http://www.webandbeer.com.ar
---
Has recibido este mensaje porque estás suscrito al grupo "webandbeer" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a webandbeer+...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Normando Hall

unread,
Jun 24, 2014, 10:59:52 PM6/24/14
to weban...@googlegroups.com
Asi es. Comparé peras con manzanas.

Decime si voy bien.

Si tengo un proceso que ejecuto periódicamente cada 3 segundos, pero el mismo en completarse lleva unos 4 segundos, en algún momento se solaparán dos y mas procesos haciendo lo mismo. Al posponer el proceso al siguiente event loop, me aseguro de que el mismo comience 3 segundos luego de que finalizó el anterior proceso, sin riesgo de solapamiento.

var interval = 1000;
(function schedule() {
    setTimeout(function() {
        proceso(function() {
            console.log('proceso_x');
            schedule();
        });
    }, interval)
})();

Demián Andrés Rodriguez

unread,
Jun 24, 2014, 11:10:09 PM6/24/14
to weban...@googlegroups.com

No veo el uso de nextTick en toda esa lógica. Para asegurarte de que no se solapan, vos deberías lanzar el proceso cuando termine el otro...
Math.max(0, interval -  lo que duró el proceso)

Tio Oscar

unread,
Jun 24, 2014, 11:27:17 PM6/24/14
to webandbeer
Usa async, y usa el método forever:

https://github.com/caolan/async#forever
Exos ~ Programador, hacker y filósofo
web: http://blog.exodica.com.ar
Linked'in: http://www.linkedin.com/in/ogexos
Twitter: @exos, Indeti.ca: @exos
Tels: [+54 11] 6385-EXOS (3967) - [+54 9 11] 6133-2442

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/IT d-- s++:* a- C+++$ UBL+++$ P(-) L+++$ !E--- W+++$ !N !o K-? !w--- !O !M-- V? PS+++@ !PE Y+(++) PGP++ !t--- !5 X++ R(+) tv--(!) b- DI D-- G e@ h>++ r--- y*>+++++
------END GEEK CODE BLOCK------

Normando Hall

unread,
Jun 24, 2014, 11:28:12 PM6/24/14
to weban...@googlegroups.com
Si, ... ya estoy quemado. Tenés razón. Olvidate de nextTick jajja

Bueno, creo que la lógica que te puse acá es para hacer lo mismo que vos me indicás pero sin necesidad de calcular cuándo termina el anterior proceso.
Te asegura que se va a ejecutar sólo a partir del timeout prefijado cuando finalice el proceso anterior.

Demián Andrés Rodriguez

unread,
Jul 2, 2014, 8:55:30 PM7/2/14
to weban...@googlegroups.com
Esta bueno este video porque explica en forma super sencilla como funciona el event loop: http://vimeo.com/96425312

Normando Hall

unread,
Jul 3, 2014, 3:02:04 AM7/3/14
to weban...@googlegroups.com
Muy bueno Demián. Gracias
Reply all
Reply to author
Forward
0 new messages