2016-04-09 3 views

Antwort

1

Das einfachste scheint die Last der Maschine mit host.getHost() zu überprüfen.

Eine andere Lösung wäre, die CPU-Ressource Ihres Hosts abzurufen und isUsed() zu überprüfen. Aber Sie sollten nicht direkt auf die CPU zugreifen, daher ist die Überprüfung der Last besser.

+0

Wenn der Host ausgeschaltet ist, gibt getLoad "0" oder "none" zurück? –

+0

Es scheint, dass Host(). GetLoad nicht implementiert ist. –

1

Die Frage ist unklar. Möchten Sie wissen, ob die Maschine (Host) oder der Prozess (Worker) damit beschäftigt ist, etwas zu tun?

Für den Arbeiter sind Sie in der Java-Welt. Das Hinzufügen eines "Boolean Busy" -Feldes und seiner Set/Get-Funktionen könnte den Trick machen. Wenn der Worker beginnt, eine Aufgabe auszuführen, setzt er diesen booleschen Wert (für sich selbst oder seinen Host) auf "true" und setzt ihn auf "false", wenn er fertig ist. Jedes andere Objekt in der Simulation kann den Getter aufrufen, um zu wissen, wonach Sie fragen.

Für den Host kann etwas Ähnliches getan werden, erfordert jedoch mehr Aufwand.

+0

Könnten Sie bitte die Schritte des zweiten Falles ausführlicher beschreiben? Muss ich XML-Dateien ändern? –

+0

Ich denke, es gibt die gleichen Aktionen im zweiten Fall. Aber was ist mit platform.xml und deployment.xml? –

+1

Wenn Sie nur wissen müssen, ob ein Host beschäftigt ist oder nicht, denke ich am einfachsten an die Methoden setProperty und getProperty der Host-Klasse. Bevor Sie mit der Berechnung von call setProperty ("busy", "yes") und setProperty ("busy", "no") beginnen, wenn die Taskausführung beendet wird. Der Master kann getProperty ("busy") für jeden Host aufrufen, um zu wissen, ob er gerade beschäftigt ist oder nicht. – frs69wq

Verwandte Themen