2015-11-25 11 views
5

Ich bin Gearman server zusammen mit Gearman Manager, mit ihrer PHP-Schnittstelle ausgeführt. Das Setup ist wie folgt. Der Gearman-Server kann sich entweder auf einer der beiden Maschinen oder auf einer dritten Maschine befinden.Überprüfen Gearman Worker Status auf bestimmten Maschine

enter image description here

Für meine implemnetation, ich brauche, um von einem Arbeiter zu sagen, wenn ein anderer Arbeiter auf der gleichen Maschine besetzt oder frei ist. z.B. Ich sollte in der Lage sein zu sagen, ob Arbeiter 2 auf Maschine 1 von Arbeiter 1 auf Maschine 1 frei ist. Kann das entweder mit den PHP-APIs oder der Telnet-Schnittstelle getan werden?

Mögliche Lösung

Auf der Telnet-Schnittstelle der "ARBEITNEHMER Befehl eine Liste aller Arbeiter gibt an den Server angeschlossen zusammen mit ihren ips. Ich glaube, ich kann damit meine Aufgabe erfüllen. Ich habe ein PHP script gefunden, um diese Informationen mit Telnet zu erhalten.

Antwort

0

Ich vermute, dass Ihre vorgeschlagene Lösung ist weniger als optimal, jedoch haben Sie keine Informationen über das Problem, das Sie versuchen zu lösen, so werde ich versuchen, die Frage zu beantworten, wie es ist. Sie müssen zwischen Ihren Mitarbeitern kommunizieren und Telnet ist wahrscheinlich eine weniger als ideale Lösung. Vielleicht möchten Sie in etwas wie Redis Pub/Sub-Event-System für die Kommunikation zwischen Prozessen suchen. Lassen Sie Mitarbeiter nur einen Kanal veröffentlichen und abonnieren, der auf dem Computernamen basiert, und entwerfen Sie eine einfache Methode für die Übertragung des Workers-Status.