Python: contatore per chiamate simultanee di uno script PHP?

1

Sto provando a creare uno script di elaborazione della coda che abbia lo scopo di trovare determinati file e applicare azioni basate su parametri specifici, con il risultato di chiamare uno script PHP che serve per elaborare un elenco di file di messaggi che abbiamo generato e passati ad esso.

Una delle cose che devo specificare in un file di configurazione è il numero massimo di chiamate simultanee al processore PHP che possono essere eseguite in un dato momento, e se il numero massimo di chiamate è > = quindi loop fino a < =

Devi anche specificare una variabile di timeout "tOut" in secondi ...

Quindi in pratica cerca il file più vecchio nella directory, individua una variabile in quel nome di file 'chCode', cerca i file più vecchi nella directory con lo stesso chCode e li riprefix e restituisce un elenco di quei percorsi ripreparati .

Quindi, usa Popen o Pcall lo script con esegui 'php / path / to / filepathlist' e se: restituisce l'output '00', quindi continua ... restituisce qualsiasi testo diverso da 00, quindi reprefix e mv .. non restituisce nulla per tOut secondi quindi reprefix e mv.

Il contatore è la parte con cui ho davvero bisogno di aiuto, poiché questo deve essere accurato e ad alte prestazioni con lotti di centinaia di migliaia di messaggi di testo in uscita ordinati con questo. Posso confermare il contatore dallo script PHP, ma come detto deve essere accurato.

Utilizzo di Python 2.7 su CentOS6.

    
posta 264nm 15.12.2013 - 05:36
fonte

1 risposta

2

Se comprendo correttamente la tua domanda, le chiamate a PHP sono asincrone ma devi limitarle, vero?

Utilizza un semaforo.

link

throttle = threading.Semaphore(NUMBER_OF_CONCURRENT_EXECUTIONS)

Quindi quando chiami PHP, fallo tramite

with throttle :
    ... call php, wait for timeout, etc ...
    
risposta data 12.01.2014 - 21:49
fonte

Leggi altre domande sui tag