Newsgroup: it.comp.www.php
Titolo: Esecuzione serializzata script PHP

Ciao a tutti. Avrei bisogno di nuovo di un vostro chiarimento.
Sto convertendo un'applicazione Client-Server scritta completamente in 
Delphi che per quanto riguarda il server prevedeva l'installazione su una 
macchina con IP privato.
Ora, volendo sfruttare l'affidabilità di un hosting anzichè una macchina 
"casalinga" ho convertito tutto il codice del server Delphi in PHP e tutto 
parrebbe funzionare.
Il dettaglio che non mi riesco a chiarire è però questo:
in breve si tratta di una sorta di parallelizzazione, dove il server 
distribuisce ai client che ne fanno richiesta alcuni dati, il client li 
elabora quindi restituisce le informazioni tratte al server che le cataloga 
in un db mysql.
Il problema è che i dati da elaborare vengono costruiti dal server 
dinamicamente.
Ad ogni richiesta di un client il server genera nuovi dati basandosi su 
quelli creati precedentemente e tutto questo tramite alcuni cicli for e 
while.
Notando che la richiesta contemporanea di due o più client causavano 
pericolose sovrapposizioni di elaborazione del server che di conseguenza 
restituiva random valori errati con delphi avevo trovato ideale la 
TCriticalSection, che mi permetteva di mettere in attesa un client nel caso 
il server stesse elaborando i dati da fornire al client precedente.
Quello che vorrei sapere è se esiste una funzione simile in PHP, che 
permettà cioè di non eseguire lo script una seconda volta prima che sia 
terminato ma questo senza respingere la richiesta del client ma mettendolo 
in attesa.
Avevo pensato di utilizzare un campo nel db da settare  a "busy" ad ogni 
chiamata allo script e di liberarlo ad ogni uscita,
Avete suggerimenti più puliti?
Grazie
Valter Buccinà

 script e di liberarlo ad ogni uscita, Avete suggerimenti piy puliti?
Devi implementare una coda di job. Esistono moltissimi metodi per
implementarla, molto dipende dall'applicazione.
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto analista PHP/MySQL?
Vieni a fare uno stage con noi: 
http://www.creativepark.it/stage/


mmhh, dalla ricerca viene fuori di tutto, molti falsi allarmi...
hai sottomano qualche link dove posso studiare un pò l'argomento?
V. 

 ha scritto nel messaggio 
news:TD3Nj.11457$o06....@tornado.fastwebnet.it...

Devi far finta di essere l'impiegato di un ufficio postale e di dover
far iscrivere i clienti che entrano nel tuo ufficio in una lista con
priorità in ordine di arrivo... chi arriva prima verrà servito prima.
Ciao
Riccardo
-- 
* Immolo - Portale immobiliare
* 
http://www.immolo.it


Questo è effettivamente il tipo di ragionamento utilizzato dalla TCritical 
Section di Delphi.
Quello che non so è come implementare tale attività in PHP.
La ricerca in rete ha prodotto risultati disastrosi quindi sono andato un pò 
d'istinto su 
php.net
 ed ho trovato i Semafori. La vostra indicazione è 
quella di prendere questa strada o state suggerendo altri metodi?
Grazie
V 

 ha scritto nel messaggio 
news:1npNj.12870$o06....@tornado.fastwebnet.it...

Non ho mai utilizzato i semafori pertanto non entro nello specifico,
ma probabilmente è la scelta migliore dato che il PHP sembrerebbe
supportarli.
In realtà potresti implementare il tutto in qualsiasi modo...
un esempio su tutti potrebbe essere quello di impostare un lock su un file
e prima di cominciare l'elaborazione critica verificare che non ci siano 
lock
attivi. Ovviamente dovrai fare anche attenzione a non entrare in deadlock.
Comunque, secondo me, faresti bene a studiarti i semafori e provare,
dovrebbero proprio fare al caso tuo.
Ciao,
