2015-11-25 6 views
5

Sono in esecuzione Gearman server insieme a Gearman Manager, con la loro interfaccia PHP. la configurazione è come mostrato di seguito. Il server Gearman potrebbe essere su una delle due macchine o su una terza macchina.Controllare lo stato di Gearman Worker su una particolare macchina

enter image description here

Per il mio implemnetation, ho bisogno di essere in grado di dire da un lavoratore se un altro operatore sulla stessa macchina è occupata o libera. ad es. Dovrei essere in grado di dire se Worker 2 sulla macchina 1 è libero da Worker 1 sulla macchina 1. Può essere fatto con le API PHP o l'interfaccia telnet?

Possibile soluzione

Nell'interfaccia Telnet il comando 'LAVORATORI' fornisce un elenco di tutti i lavoratori collegati al server con i loro ips. Credo di poterlo usare per svolgere il mio compito. Ho trovato un PHP script per ottenere queste informazioni usando telnet.

risposta

0

Sospetto che la soluzione proposta non sia ottimale, tuttavia non hai fornito alcuna informazione sul problema che stai cercando di risolvere, quindi cercherò di rispondere alla domanda così com'è. Avrai bisogno di comunicare tra i tuoi dipendenti e telnet è probabilmente una soluzione tutt'altro che ideale. Si consiglia di esaminare qualcosa come il sistema pub/sotto evento di Redis per la comunicazione tra processi. Basta che i lavoratori pubblichino e sottoscrivano un canale basato sul nome della macchina e progettino un metodo semplice per trasmettere lo stato dei lavoratori.