Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-12-2007
tefots tefots is offline
Miembro
 
Registrado: feb 2005
Posts: 108
Poder: 22
tefots Va por buen camino
Cita:
Empezado por JARivera Ver Mensaje
donde ProcessPackage es una rutina que parsea la data y actualiza la base de datos usando ADO, y devuelve un ID.

Sin embargo, aun si pongo entre comentarios esa llamada, es decir, no hago nada en la base de datos, de todas formas sigue disparandose el uso de CPU. Alguna idea?
yo el codigo no lo hubiera hecho tal como lo pones ahi.
ademas en el except , deberias detectar si la excepcion es por timeout , o por un error del socket , para asi forzar a desconectar al cliente , lo cual indirectamente creo que es lo que te está provocando el problema.

respuesta corta : pon un sleep(1) , despues del readln , tal como está el código solucionará el problema.

respuesta larga :
al hacer un readln , cuando el cliente se desconecta o se corta el socket , y como en el try excep no controlas el tipo de excepcion , haces que el readln salte enseguida (independientemente del valor que tenga TCPReadlnTimeout) , y como estas dentro del execute de un thread , se está ejecutando el readln y dando excepción constantemente , con lo que el procesador lo saturas (es como tener un bucle infinito dentro de un thread ). por eso , simplemente al poner un sleep(1) ya no consumes nada de procesador.

ademas , lo normal es hacerlo todo lo que haces dentro del try (y no despues del except) , y en el except controlar si la excepcion es idreadtimeout no hacer nada , y si es culquier otra hacer un athread.connection.disconnect


saludos.

Última edición por tefots fecha: 28-12-2007 a las 16:21:45.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cuál es la Mejor forma de Eliminar Conexiones Clientes de un Server Indy R_Richards Internet 4 22-07-2010 15:11:09
Ayuda con incompatibilidad del Post de TIdHTTP de Indy 8 con Indy 10 rolandoj Internet 13 24-12-2008 13:19:01
email con indy cual uso ; server o cliente cmena Internet 13 15-09-2005 20:53:12
Error Ejemplo Chat en Indy tcp (server & socket) Clantt Internet 7 15-09-2005 16:39:44
.dll's que quedan tras desinstalación santana Oracle 8 26-04-2004 22:45:23


La franja horaria es GMT +2. Ahora son las 21:38:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi