elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Pregunta]: Ejecutar esta consulta constantemente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: Ejecutar esta consulta constantemente  (Leído 939 veces)
Leguim


Desconectado Desconectado

Mensajes: 714



Ver Perfil
[Pregunta]: Ejecutar esta consulta constantemente
« en: 24 Octubre 2019, 01:38 am »

Buenas noches,
¿Como podría ejecutar esta consulta de una forma constante?

Mark_Disconnected()

Código
  1.        function Mark_Disconnected()
  2. {
  3. $timestamp_now = date('Y-m-d H:i:s');
  4. $timestamp_now = strtotime('-15 minutes', strtotime($timestamp_now));
  5. $timestamp_now = date('Y-m-d H:i:s', $timestamp_now);
  6.  
  7. $con = Connection('A', 'B');
  8. $query = $con->prepare('UPDATE users SET connected = 0, sid = null WHERE connected = 1 AND '.($timestamp_now).' >= last_activity');
  9. $query->execute();
  10. }
  11.  

La idea es hacerlo sin sockets, una de las soluciones podría ser un timeout de javascript que llama a una función ajax y una vez que se complete la solicitud "success:" se inicia otro timeout con la misma función... No se si esto está bueno o se sobre carga el servidor.

Realmente es algo con lo que estoy renegando hace rato ya.


En línea

mchojrin

Desconectado Desconectado

Mensajes: 35



Ver Perfil WWW
Re: [Pregunta]: Ejecutar esta consulta constantemente
« Respuesta #1 en: 7 Noviembre 2019, 13:50 pm »

No lo veo mal en principio.

Sobre el tema de la sobrecarga, dependerá de cuánto sea el timeout y cuánta concurrencia tengas


En línea

Ayudo a desarrolladores PHP a acceder a puestos mejor remunerados
[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: [Pregunta]: Ejecutar esta consulta constantemente
« Respuesta #2 en: 15 Noviembre 2019, 00:17 am »

Desde el vamos tenes un gran problema, y es que el protocolo HTTP 1.1 esta pensado y diseñado para ser desconectado:
se abre la conexion, se recibe la peticion HTTP, se procesa, en envia la respuesta HTTP y se cierra la conexion.

Por eso surgieron cosas como Socket.io para mantener una conexión activa. Eso de tirar de ajax dentro de un timeout solo da problemas, no tanto en el server sino en el propio cliente, por la naturaleza asíncrona de JS. Si no esta perfectamente programado y diseñado vas a terminar desbordando la cola de mensajes de JS (messages queue). Y ni hablar de los posibles huecos de seguridad que suponen llevar toda al logica de tu aplicacion a un simple timeOut que sera enviado en limpio al cliente.

Podrias llegar a usar ajax + timeOut, pero tendrias que hacer todo de forma sincrona y te digo que dominar la asincronia de js es mas difícil que dominar socket.io  :xD

Por que no queres usar sockets que es justo la herramienta que necesitas implementar?  :silbar:
En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como ejecutar esta consulta?
Programación Visual Basic
menu151 0 1,165 Último mensaje 5 Febrero 2013, 05:25 am
por menu151
[Pregunta]: ¿Ejecutar una consulta SQL a cada momento?
Desarrollo Web
Leguim 1 1,009 Último mensaje 4 Noviembre 2019, 09:21 am
por Agente Naranja
[Pregunta]: ¿Existe una vulnerabilidad de inyección en esta consulta?
Desarrollo Web
Leguim 3 1,610 Último mensaje 12 Diciembre 2020, 20:37 pm
por Danielㅤ
[Pregunta]: ¿Cómo hacer esta consulta 2?
Bases de Datos
Leguim 0 1,249 Último mensaje 23 Abril 2021, 00:07 am
por Leguim
[Pregunta]: ¿Qué estoy haciendo mal con esta consulta PDO?
PHP
Leguim 6 3,328 Último mensaje 6 Mayo 2021, 18:42 pm
por WHK
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines