Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Duda] Ejecutar acciones en horas determinadas por Timer (https://www.cobolforo.es/showthread.php?t=250)

Joseg 23 de octubre de 2015 13:18

Ejecutar acciones en horas determinadas por Timer
 
Quero que um programa em Powercobol execute determinadas funções em determinadas horas. Por exemplo atualizações em das BDs as 13h e as 20h.
Não queria usar a ferramenta do windows para planeamento de tarefas.
Alguém tem alguma dica?

Obrigado
José Manuel

Kuk 23 de octubre de 2015 14:22

Joseg, sin la ayuda del planificador de tareas de Windows, la única posibilidad de hacerlo es que tu programa esté en ejecución todo el día.

Si el programa va a estar en ejecución todo el día, no hay ningún problema. Con el Timer haces ACCEPT FROM TIME y con un IF preguntas si es la hora necesaria o no.

Lecterman 23 de octubre de 2015 18:53

Hola Joseg, sin dudas la única forma, sin usar el programador de tareas es hacer un programa.

Hice tengo un programa que lanzo desde otra aplicación y cada determinado tiempo chequea actualizaciones. El usuario tiene la posibilidad de marcara cada cuanto desea hacer este chequeo (horas o minutos) y para eso utilizo el Timer para contar los minutos y las horas.

Espero sirva de idea.

Joseg 23 de octubre de 2015 19:01

Cita:

Citación del post de Kuk (Mensaje 1135)
Joseg, sin la ayuda del planificador de tareas de Windows, la única posibilidad de hacerlo es que tu programa esté en ejecución todo el día.

Si el programa va a estar en ejecución todo el día, no hay ningún problema. Con el Timer haces ACCEPT FROM TIME y con un IF preguntas si es la hora necesaria o no.



Gracias !! Work !!

---------- Post añadido : 18:01 ---------- Post anterior : 18:00 ----------

Cita:

Citación del post de Lecterman (Mensaje 1136)
Hola Joseg, sin dudas la única forma, sin usar el programador de tareas es hacer un programa.

Hice tengo un programa que lanzo desde otra aplicación y cada determinado tiempo chequea actualizaciones. El usuario tiene la posibilidad de marcara cada cuanto desea hacer este chequeo (horas o minutos) y para eso utilizo el Timer para contar los minutos y las horas.

Espero sirva de idea.

Gracias!

Rapinto 24 de octubre de 2015 00:45

JOSEG,

A utilização do Timer consome CPU permanentemente.

Para evitar isso, deveria ser feito um Call à API do Windows Sleep.

" The Sleep function suspends the execution of the current thread for a specified interval.

Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) "

Esta função não consome CPU.

Eu já utilizei num programa e funcionou bem:

Código COBOL:
  1.  MOVE 100 TO MILISECONDS.
  2.  CALL "Sleep"        WITH STDCALL USING
  3.                                  BY VALUE MILISECONDS.

Saludos,
Rui Pinto

Kuk 26 de octubre de 2015 09:22

Rapinto, la función Sleep vale en un bucle, pero para hacer funcionar la comprobación en paralelo con otro(s) tratamiento(s) es necesario un Timer, creo...

Joseg 13 de noviembre de 2015 11:02

Cita:

Citación del post de Rapinto (Mensaje 1139)
JOSEG,

A utilização do Timer consome CPU permanentemente.

Para evitar isso, deveria ser feito um Call à API do Windows Sleep.

" The Sleep function suspends the execution of the current thread for a specified interval.

Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) "

Esta função não consome CPU.

Eu já utilizei num programa e funcionou bem:

Código COBOL:
  1.  MOVE 100 TO MILISECONDS.
  2.  CALL "Sleep"        WITH STDCALL USING
  3.                                  BY VALUE MILISECONDS.

Saludos,
Rui Pinto


Obrigado pela dica. Já testei. É mais uma opção.

Cumprimentos,
JoseManuel


La franja horaria es GMT +2. Ahora son las 16:20.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.