Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-05-2014, 20:40   #1
Maui78
Senior Member
 
L'Avatar di Maui78
 
Iscritto dal: Jan 2005
Messaggi: 395
Esecuzione contemporanea di 2 script perl

Ciao a tutti
Mi sto cimentando nella creazione di uno, a mio modo, stupidissimo, script in perl (su windows 2008), che, nelle mie intenzioni, dovrebbe eseguire un batch sul server, ma ho più di qualche difficoltà.
Ho effettuato 2 tentativi, allego solo il primo, ma, in entrambi i casi, richiamando lo script da apache, non riesco ad impedire la possibilità di eseguirlo più volte contemporaneamente.
In realtà, aprendo più schede, finchè ce n'è uno in funzione l'altro non parte, ma vorrei mi stampasse una riga per avvisare che è già in esecuzione altrove, e che si fermasse lì. Invece, ignora la print e attende la fine del primo.
Sotto il primo esempio dove uso un file semaforo per bloccare una seconda partenza:

#!C:/Perl64/bin/perl.exe

use strict;
use warnings;

print "Content-type: text/html\n\n";

my $BASE_PATH= "miopath";
my $filename = "$BASE_PATH/test.txt";

if (!-e $filename)
{
open MYFILE, ">", "$filename";
print "eseguo il caricamento<br>";
system("\"mio.bat\" > NUL");
print "caricamento terminato<br>";
close (MYFILE);
unlink ("$filename");
}
else
{
print "Caricamento gia in corso. Attendere la conclusione";
}


Tra l'altro, vorrei mi stampasse la prima print e poi partisse l'esecuzione dello script, invece mi stampa le 2 righe contemporaneamente a caricamento terminato, vanificando di fatto il senso di ciò che ho scritto.

Mi illuminate ?

PS: l'altro tentativo, che non ho qui sotto mano, l'ho fatto sfruttando l'flock, ma ha incontrato gli stessi identici problemi. Lo script attende il termine dell'altro prima di partire invece di uscire stampando l'eccezione.
Maui78 è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2014, 00:35   #2
british
Member
 
L'Avatar di british
 
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
Per la questione che stampa tutto in un colpo solo potrebbe essere un problema del browser. Prova a connetterti allo script con telnet o netcat.

Per il fatto che non esegue le due istanze in contemporanea per ora non ti so dire.
british è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2014, 06:54   #3
Maui78
Senior Member
 
L'Avatar di Maui78
 
Iscritto dal: Jan 2005
Messaggi: 395
Ciao, ieri ho fatto qualche altra prova. Effettivamente la stampa di entrambe le righe avviene solo sul browser. Viceversa, da una shell il tutto avviene in sequenza senza problemi. Adesso provo a raffinare un pò il tutto e vediamo se risolvo.
Per quanto riguarda l'altro problema, in realtà a me serve bloccare la possibilità di eseguire contemporaneamente da due sessioni diverse lo script, e, verificando meglio, effettivamente è così. Se lancio il perl da un browser blocco la possibilità di eseguirlo da altri, esattamente come speravo. Il problema si manifesta solo quando apro più schede sullo stesso browser, è lì che mi ero convinto che il giro non funzionasse, ma, sembra essere tutto ok.

Grazie lo stesso !
Maui78 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v