Foros del Web » Programando para Internet » PHP »

Cakephp, sleep y F5

Estas en el tema de Cakephp, sleep y F5 en el foro de PHP en Foros del Web. Estaba haciendo un autocomplete con ajax y para probar como se veia mi mensaje de espera puse un sleep de 5 segundos en la acción ...
  #1 (permalink)  
Antiguo 16/07/2010, 21:26
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Cakephp, sleep y F5

Estaba haciendo un autocomplete con ajax y para probar como se veia mi mensaje de espera puse un sleep de 5 segundos en la acción que me devuelve los resultados, me di cuenta que al teclear 5 letras me tardaba mucho más de 5 segundos (unos 25 segundos), lo primero fue ver si estaba abortando las peticiones con ajax que se hacian seguidas, todo indicaba que estaba bien pero es como que igual espera los 5 segundos de la peticion anterior y se van acumulando.

Probé entrar por url y refrescar con F5 varias veces y en el firebug me sale que la primera se termina en 5 segundos, la segunda en 10 y la tercera en 15 seg. o sea como que la pone en cola?

Si hago lo mimsmo sin cakephp en un php me sale como que las anteriores han sido abortadas y la última me termina a los 5 segundos cosa que no pasa con cake.


¿se puede solucionar esto? ¿algun tipo de configuración?
  #2 (permalink)  
Antiguo 16/07/2010, 21:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cakephp, sleep y F5

el problema radica en sleep(), recuerda que PHP es stateless

de manera que siempre... por cada petición se carga el script nuevamente, jamás el mismo, de modo que no se acumula nada...

entonces, solo al final del sleep() es que el servidor envía el contenido, por eso si recargas la ṕagina antes de ese tiempo es que se vuelve a cargar, y pareciera que se acumula el tiempo, cuando en realidad es otra petición atrasada...

quizá te sirvió sleep() para probar el retraso, por no tienes porque dejarlo... eso trae las complicaciones, y en verdad... ya no hace falta... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 16/07/2010, 21:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Tema movido desde PHP orientado a objetos a PHP
  #4 (permalink)  
Antiguo 16/07/2010, 22:48
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Cakephp, sleep y F5

Si el sleep lo uso para que me haga un retraso asi puedo ver el mensaje, eso lo voy a sacar.

Se hace peticiones nuevas, eso lo veo en el firebug (ahora me doy cuenta que las anteriores no se abortaban, quedan esperando) pero me devuelve la última en el tiempo que suman las otras anteriores. Suponte que actualizo 5 veces y el sleep está en 5 segundos, me devulve en 25 segundos.
Eso solo pasa cuando lo hago en el protyecto que tengo con Cakephp, si lo hago sin el framework actualizo 5 veces y me devulve a las 5 seg y pico como tiene que ser no?



Lo acabo de solucionar, era problema de las sesiones

con esto si se actualiza varias veces muestra a los 5 seg
Código PHP:
Ver original
  1. <?php
  2. sleep(5);
  3. echo 'termina';
  4. ?>

pero con sesion no
Código PHP:
Ver original
  1. <?php
  2. sleep(5);
  3. echo 'termina';
  4. ?>

asi que en la accion que me trae los resultados uso session_write_close(); y me soluciona el problema jeje

o sea algo como esto:
Código PHP:
Ver original
  1. <?php
  2. sleep(5);
  3. echo 'termina';
  4. ?>

Leyendo la doc de php sobre 'session_write_close' entiendo como que se bloquea hasta que el script termine (no hay necesidad de usar session_write_close), pero en este caso si por el sleep que como no termina permanece bloqueada la info de la sesion, por eso es como que esperaba los segundos de las peticiones anteriores por tratar de leer al hacer la peticion? y con session_write_close lo que se logra es que escriba y cierre?

Por culpa del sleep, entre ver si era problema de ajax, php, cacke o mio me estoy aguantando ir a cenar desde hace 4 horas jeje

Última edición por Dany_s; 16/07/2010 a las 23:09

Etiquetas: cakephp, sleep
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:26.