Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Avanzado » Ejecutar un script que ya está en ejecución Responder al tema
Nuevo tema


Página 1 de 1  [ 4 mensajes ] 
 
Nota 2011-09-11 11:56 @539
Avatar de Usuario
Vive para Perl en Español
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia
Mensajes: 551
Ejecutar un script que ya está en ejecución
Mi pregunta es por que tengo un script que tiene que consultar vía API web, más de setenta mil registros...

Éste hace unos procesos a base de datos, etc, etc...

Pero mi script tarda 3 horas aproximadamente en arrojarme el resultado por cada siete mil registros...

Mi pregunta es... ¿Podré ejecutar ese script de nuevo si no ha terminado el primer bloque de siete mil registros para leer los nuevos registros?

La idea es que el admin programara cada cierto tiempo que el script busque X registros por medio de la API cada cierto tiempo.

No sé cómo podría disminuir el tiempo tampoco; usando el WWW::Mechanize ya optimicé lo que más pude...

_________________
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org


Nota 2011-09-11 13:17 @595
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
Re: Ejecutar un script que ya está en ejecución
danimera escribió:
Mi pregunta es por que tengo un script que tiene que consultar vía API web, más de setenta mil registros...

Éste hace unos procesos a base de datos, etc, etc...

Pero mi script tarda 3 horas aproximadamente en arrojarme el resultado por cada siete mil registros...
No sé cómo lees esos siete mil registros, ni el procesamiento que realizas con ellos, pero a mi parece excesivo ese tiempo de tres horas... ¿Los pides uno a uno? ¿No se pueden pedir en bloques?

danimera escribió:
Mi pregunta es... ¿Podré ejecutar ese script de nuevo si no ha terminado el primer bloque de siete mil registros para leer los nuevos registros?
Yo creo que sí, siempre y cuando la segunda ejecución tenga presente que puede estar existiendo una ejecución anterior. Quiero decir: el programa puede realizar todas las operaciones que quiera, siempre y cuando sus cálculos no se refieran a información que todavía no ha sido almacenada o procesada por la ejecución anterior (que aún no ha terminado). Si, en cambio, con los nuevos siete mil registros, necesito realizar alguna operación que tenga en cuenta que los anteriores siete mil registros han sido almacenados o procesados, pues no puedo hacerlo, porque no lo están.

danimera escribió:
No sé cómo podría disminuir el tiempo tampoco; usando el WWW::Mechanize ya optimicé lo que más pude...
Si el cuello de botella no es tu programa, entonces será del servidor que te da la información... Sin más detalles, poco más se puede decir :(

_________________
JF^D Perl programming


Nota 2011-09-11 14:21 @640
Avatar de Usuario
Vive para Perl en Español
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia
Mensajes: 551
Re: Ejecutar un script que ya está en ejecución
Citar:
No sé cómo lees esos siete mil registros, ni el procesamiento que realizas con ellos, pero a mi parece excesivo ese tiempo de tres horas... ¿Los pides uno a uno? ¿No se pueden pedir en bloques?


Es un foreach() de un listado de Links; leo el link con el Mechanize, obtengo un código, se lo paso al API que me regresa un JSON que guardo en una tabla; el ciclo recorre más o menos siete mil links...

Citar:
Yo creo que sí, siempre y cuando la segunda ejecución tenga presente que puede estar existiendo una ejecución anterior. Quiero decir: el programa puede realizar todas las operaciones que quiera, siempre y cuando sus cálculos no se refieran a información que todavía no ha sido almacenada o procesada por la ejecución anterior (que aún no ha terminado). Si, en cambio, con los nuevos siete mil registros, necesito realizar alguna operación que tenga en cuenta que los anteriores siete mil registros han sido almacenados o procesados, pues no puedo hacerlo, porque no lo están.


Solo recogerá información y la guardará. La pregunta radica en que este script ejecutará una búsqueda de la información según la configuración del admin. Ejemplo: buscar registro con un valor mayor a tal número, buscar registros de tal localidad, etc... Y como se ejecutará desde un cron, es posible que se ejecute el script y luego otro pero el anterior no habrá finalizado... son como 20 de estos que se ejecutarán en X horario.

Citar:
Si el cuello de botella no es tu programa, entonces será del servidor que te da la información... Sin más detalles, poco más se puede decir


Debido a que es un webservice creo, bueno, un API para cada ciclo; él recoge la información, imagino que es lo mismo que hacerlo con un navegador, es algo como leer https://api.pagina.com/items/ID:500... La idea general es como un webspider o crawler, digamos.

_________________
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org


Nota 2011-09-11 20:21 @889
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
Re: Ejecutar un script que ya está en ejecución
Entonces, la respuesta es sí.

;)

_________________
JF^D Perl programming


Responder al tema  [ 4 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO