Foros del Web » Programando para Internet » PHP »

Procesos en php

Estas en el tema de Procesos en php en el foro de PHP en Foros del Web. Hola a todos. Tengo un problema y para variar no se solucionarlo yo solo por no saber que buscar exactamente en nuestro amigo google. Supongamos ...
  #1 (permalink)  
Antiguo 04/07/2011, 05:39
Avatar de Chupytoloco  
Fecha de Ingreso: julio-2007
Mensajes: 88
Antigüedad: 16 años, 9 meses
Puntos: 1
Procesos en php

Hola a todos.

Tengo un problema y para variar no se solucionarlo yo solo por no saber que buscar exactamente en nuestro amigo google.

Supongamos que tenemos 2000 usuarios y todos estan navegando en tu pagina web simultaneamente.

En una tabla de mysql tengo una lista de DATETIME, esta lista son unos tiempos para recargar muchas cosas en la base de datos.

Por lo que un usuario hace click en la pagina, y se ejecutal un query seleccionando de esa tabla las filas en las que su tiempo es inferior a now().

Con este query hacemos esto:

Código:
while($n_actualizaciones = mysql_fetch_array($qn_actualizaciones))
{
	
	recargar_usuario($user, $n_actualizaciones['finalizacion']);
	mysql_query("DELETE FROM cola_actualizacion WHERE id = '".$n_actualizaciones['id']."'");
}
Como podeis ver, por cada fila llamamos a una funcion llamada "recargar_usuario" y luego borramos dicha fila.

El problema, pues de logica, cuando hay muchos usuarios se ejecuta simultaneamente el script por que las peticiones llegan en el mismo segundo y a veces se arma un pitote wapo.

En fin no se si me he explicado bien, pero gracias de antemano.
__________________
Creador de blackmoons.net
----------------------------------------------------------------------
  #2 (permalink)  
Antiguo 04/07/2011, 06:03
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Procesos en php

cuando hablas de recargar en la bd te refieres a SELECT, DELETE, UPDATE, INSERT sera alguno de ellos, porque no conozco ese de recargar.

bueno supongo que es el delete que aparece en el codigo

en cuanto a la explicacion ibas bien, pero al final no especificas que

"pitote wapo" se arma según tu, y que es lo que quisieras solucionar en si
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #3 (permalink)  
Antiguo 04/07/2011, 06:12
Avatar de Chupytoloco  
Fecha de Ingreso: julio-2007
Mensajes: 88
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Procesos en php

Vale a ver:

Hacemos un select y nos da 5 filas, por cada una de estas filas tenemos que aplicar la funcion recarga de usuario.

2 usuarios hacen F5 a la vez en la pagina, por lo que los 2 usuarios cogen el select a la vez, o incluso uno coge 5 y el otro 4, ya que el que cogio 5 resultados ejecuto la funcion una vez y borro una fila.

Como hago para que solo el primer usuario sea el que ejecute ese select?
__________________
Creador de blackmoons.net
----------------------------------------------------------------------
  #4 (permalink)  
Antiguo 04/07/2011, 06:22
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Procesos en php

bueno pudieras crear otro campo por ej.

activado, que muestre 0 o 1, si esta en 1 esta activado

y al principio de la ejecucion actualizas el campo a 1, y al final lo cambias a 0

cuando vayas a hacer el select incluyes en el where activado = 0, y si no te da nada es porque alguna otra persona lo esta ejecutando

es solo una idea
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #5 (permalink)  
Antiguo 04/07/2011, 07:11
Avatar de Chupytoloco  
Fecha de Ingreso: julio-2007
Mensajes: 88
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Procesos en php

No es factible por un motivo, los query se ejecutan por orden "en la base de datos" lo que significa que si haces lo que tu dices ( un select y luego un update ), existe la posibilidad que entre el serlect del usuario_1 y antes del update el usuario_2 meta el mismos select, por lo que estariamos en las mismas.

Necesito bloquear la base de datos de alguna manera creo yo.
__________________
Creador de blackmoons.net
----------------------------------------------------------------------
  #6 (permalink)  
Antiguo 04/07/2011, 07:57
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Procesos en php

pues la verdad no me dan ahorita las neuronas para pensar en otra cosa

pero asi como lo planteas lo veo complicado ya q hasta donde se obligado debes de revisar si alguien esta en la consulta y esos se hace en milesimas de segundos

ahh tambien un poco mas rapido sin consultar base de datos es usando $_SESSION colocandola antes del select en uso y luego del select libre y antes del select comprobar si esta en uso
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O

Etiquetas: procesos
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 19:00.