Poner tiempo "DELAY" a Proceso en Lote
Publicado por Allan (25 intervenciones) el 19/02/2019 02:15:39
Buenas clarioneros, a ver si alguno tiene el comando o la rutina para algo tan simple pero que se me ha hecho un nudo hacerlo.
Tenemos el procedimiento en lote que envía y consulta las facturas electrónicas a los servidores de Hacienda.
Una vez que se dispara el JSON que hace la consulta, la respuesta que es un archivo TXT puede recibirse en 10, 20 , 30. 40 o más segundos.
Para Clarión una vez que uno disparó el JSON ya lo da por concluido, entonces necesito "hacer tiempo", para esperar que la respuesta se haya recibido.
Para hacer ese tiempo y esperar la respuesta realizo un simple loop de la siguiente manera:
Loop until exists (archivorespuesta)
iiii# = 1
end
Esto funciona muy bien, pero cuando hay varios hilos consultando y los servidores de Hacienda están lentos, el CPU del servidor local se va al 99 o 100% y obvio se pone lento todo.
Existe en Clarion algún comando para hacer dentro de un SOURCE un DELAY, simplemente que no haga nada por un intervalo de segundos dado, o algo que sea menos "consumidor" de recurso que el loop indicado.?
Muchas Gracias por sus consejos.
Tenemos el procedimiento en lote que envía y consulta las facturas electrónicas a los servidores de Hacienda.
Una vez que se dispara el JSON que hace la consulta, la respuesta que es un archivo TXT puede recibirse en 10, 20 , 30. 40 o más segundos.
Para Clarión una vez que uno disparó el JSON ya lo da por concluido, entonces necesito "hacer tiempo", para esperar que la respuesta se haya recibido.
Para hacer ese tiempo y esperar la respuesta realizo un simple loop de la siguiente manera:
Loop until exists (archivorespuesta)
iiii# = 1
end
Esto funciona muy bien, pero cuando hay varios hilos consultando y los servidores de Hacienda están lentos, el CPU del servidor local se va al 99 o 100% y obvio se pone lento todo.
Existe en Clarion algún comando para hacer dentro de un SOURCE un DELAY, simplemente que no haga nada por un intervalo de segundos dado, o algo que sea menos "consumidor" de recurso que el loop indicado.?
Muchas Gracias por sus consejos.
Valora esta pregunta
0