Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-05-2008
alopete alopete is offline
Miembro
 
Registrado: sep 2007
Posts: 95
Poder: 17
alopete Va por buen camino
Automatizar ejecucion de procesos

Buenos días:
A ver si me podeis ayudar: tengo varios procesos que quiero que se ejecuten todos los dias a ciertas horas, por ejemplo, el proceso A a las 20, el proceso B a las 21,...
Se me ocurre que puedo hacerlo con
1-threats (que se repite cada cierto tiempo)
2- Timers (cada cierto tiempo)
3- Haciendo un .bat y programando en el task manager de windows.

Cual seria la mejor opcion?
Los threats me han dado problemas en otros procesos porque acaban bloqueandose.

Muchas gracias
Ander
Responder Con Cita
  #2  
Antiguo 08-05-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Los threads es una manera de implementarlo, pero no tienen nada que ver con procesos periódicos.

Si quieres programarlo tú, hazlo en Delphi con Timers (aplicación o servicio), si no quieres reinventar la rueda, utiliza el programador de tareas que está justo para eso...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 08-05-2008
alopete alopete is offline
Miembro
 
Registrado: sep 2007
Posts: 95
Poder: 17
alopete Va por buen camino
Hola Neftali.
Muchas gracias por responder.
He pensado que lo mejor será hacerlo con timers ya que tengo que hacer una especie de consola para saber el estado de los procesos lanzados y poder lanazarlos desde la consola. Mi idea es hacer un formulario con verios botones. Pero me queda una duda: com puedo decirle a un timer que la primera vez que se ejecute sea a las 20? tras eso seria ponerle el intervalo a 24 horas (en milisegundos). Es correcto?
Responder Con Cita
  #4  
Antiguo 08-05-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Tu aplicación debe estar funcionando siempre.
Los timers, los pones cada minuto (por ejemplo); El timer lo único que hace es darte la posibilidad de consultar la hora. Cada minuto (cuando "salta" ell timer) consultas la hora del sistema y la comparas con la que tengas.

Si la comparación da positivo lanzas el proceso que necesites.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 08-05-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
- interval := abs(MillisecondsBetween(hora_actual, '20:00:00'));
- pones el timer a ese intervalo ...y a esperar.

Necesitarás RecodeTime de la unidad DateUtils. Además de comprobar si la hora actual es mayor que 20:00 ó 21:00, etc.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 09-05-2008
alopete alopete is offline
Miembro
 
Registrado: sep 2007
Posts: 95
Poder: 17
alopete Va por buen camino
Muchas gracias a los dos.
Lo voy a intentar como decis.
Responder Con Cita
  #7  
Antiguo 09-05-2008
alopete alopete is offline
Miembro
 
Registrado: sep 2007
Posts: 95
Poder: 17
alopete Va por buen camino
Hola de nuevo:

Al final he decidido prorgramarlo para que se pueda lanzar tantas veces como se quiera y sea programable. Para ello lo que he hecho ha sido: (tal vez le sirva a alguien):
  1. Poner un timer con un intervalo de media hora
  2. Cuando se ejecuta el timer, compruebo la ultima ejecucion que se realizo del proceso (q la he guardado en la bbdd). Si la hora actual es una hora en la que se tiene que lanzar y la ultima ejecución es anterior, lanzo el proceso y guardo la ultima ejecucion en la bbdd.
  3. Voy a crear una lista de procesos (en la bbdd) con las horas a las que se tiene que lanzar, para asi no tener que modificar el código cada vez que se cambia las horas de lanzamiento.
Supongo que no será la mejor solución pero es bastante simple y funciona.
Muchas gracias a todos
Responder Con Cita
Respuesta



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
Automatizar un browser propio acertij022 Internet 2 16-01-2008 14:43:47
Automatizar OpenOffice. Critter Servers 2 31-07-2007 19:41:24
Automatizar BACKUPS y RESTORES AMINOA2R Firebird e Interbase 12 20-10-2005 16:11:16
Automatizar la ejecucion de una aplicacion MarcoMae Varios 3 15-07-2005 16:00:03
Automatizar Login JoseQ Internet 0 30-03-2005 12:35:50


La franja horaria es GMT +2. Ahora son las 00:52:46.


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