![]() |
Concurrencia
Buenas,
Estoy realizando un sistema web con php y mysql y me queda un tema por resolver: La concurrencia de varios usuarios a un registro. La verdad que no se como hacerlo si alguien me puede dar una mano estare muy agradecido. Saludos |
Durante bastante tiempo hice uso de un ficherito de texto para el tema de los bloqueos, es decir se trata de hacer una secuencia en la que obligas a los usuarios a ir en fila india.
Abres un ficherito de texto, bloqueas el ficherito, hace tus inserts o updates, desbloqueas el fichero de texto. De esta forma si un usuario intenta acceder simultanemante deberá esperar a que el fichero este desbloqueado. Otra forma de hacerlo es enviar todas las consultas a una tabla, y tener un proceso ejecutándose constantemente que mira si hay registros en la tabla, si los hay, se encarga de ejecutar las sentencias SQL guardadas en la tabla, de esta forma también te aseguras que siguen un orden. |
Pero, si se trata de muchos accesos, este ficherito ¿no se convierte en un cuello de botella?
// Saludos |
Cita:
Seguramente nuestro amigo no tiene tantas restricciones y puede hacer uso de técnicas menos enrevesadas. |
Cita:
1 - Queres saber el tiempo que estan conectado los usuarios. 2 - Queres saber quienes son los que se conectan. Para la primera, te recomiendo utilizar javascript. (pero se puede hacer de otra manera. con solo php) digamos que cada 5 o 10 minutos, haces un HTTPResquest a un php para sumar el tiempo. Para la segunda, podes utilizar un contador, y un time() Me explico mejor: En el row del usuario (fila) dentro de la base de datos, podes crear una columna que diga 'visit_count' del tipo integer. Y otra que diga 'last_visit' del tipo integer o datatime (era asi? no recuerdo bien) Bueno, no confundo mas :D |
Hola, no estoy muy seguro de si esto tiene que ver con lo que se pregunta, ni si a leflaco realmente le importan las respuestas, pero me llama la atención esto
Cita:
Y por cierto, ¡bienvenido a los foros! // Saludos |
Hola, gracias por la bienvenida, hace mucho que no visitaba este foro. lo veo mas bonito :D
a ver... improvisemos un sistema... digamos que al ingresar el usuario a una funcion init(); que digamos que esté en el de reconocimiento del usuario. cookies.php, o common.php Tenemos el valor, 'lastvisit' y digamos que usamos el tipo int(11) obtenido del time(); Bien ahí, convengamos que tambien asignaremos un rango de conexion. es decir, 10 min sin ingresar es inactividad. entonces, comparamos. Código PHP:
hay que tener en cuenta que los usuarios que ingresan a la pagina, ... mas de uno se toma su tiempo para leer las cosas, e incluso re-leerlas. por lo que hay que elegir bien el tiempo rango. Código PHP:
|
La franja horaria es GMT +2. Ahora son las 20:52:35. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi