• Publicidad

Capturando exceso de datos

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Capturando exceso de datos

Notapor primitivo » 2013-07-23 20:13 @884

Hola gente, un saludo.

Una pregunta, a modo de información.

¿Es posible detectar exceso de información en un mismo intervalo de tiempo?


Es decir, 3 datos recibidos en 1 segundo.

Lo que necesitaría es, que si el programa recibe la misma orden 3 veces o más en 1 segundo, se cierre y evitar que colapse.
primitivo
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2013-03-22 23:05 @004

Publicidad

Re: Capturando exceso de datos

Notapor explorer » 2013-07-23 20:43 @905

A veces, cuando hago un proceso que quiero que solo esté presente una sola instancia de él, lo que hago es colocar, al principio del programa, una comprobación de que efectivamente, no hay ningún otro programa como él ejecutándose. Y si lo hay, comenzar un bucle de espera, para que termine el proceso anterior. O cerramos la aplicación porque es inútil esperar.

Casos así pueden ocurrir en los programas que se ejecutan desde el cron. Algunos pueden tardar mucho, así que no tiene sentido que se ejecute una segunda instancia del programa.

Algo así (muy básico):
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $nosotros = basename $0;      # $0 es la ruta completa de este programa. Con File::Basename nos quedamos solo con el nombre
  2. my @ps;
  3. do {
  4.     # sacamos un listado de todos los programas en ejecución, que se llamen igual que $nosotros,
  5.     # pero que no seamos nosotros (el PID del programa está en $$), ni que sea el editor de textos joe
  6.     # (quizás estamos reeditando el programa en otra pantalla)
  7.     @ps = grep { !/$$|joe/ } grep { /$nosotros/ } qx(ps aux);
  8.  
  9.     sleep rand(60) if @ps;       # si hay algún programa igual, esperamos algo así como un minuto
  10. } while @ps;                     # y volvemos a mirar
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Depende un poco de las circunstancias en que se ejecute ese proceso...

Otro caso es cuando hay usuarios en la web que se empeñan en hacer doble clic en los botones de envío, cuando solo hace falta hacer uno.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados

cron