2016-04-07 15 views
0

Stellen Sie sich eine Situation vor, in der wir ein Zeitplanungssystem (1 Host) und z. B. 6 Computer (Worker) haben, die Anweisungen vom Planungssystem ausführen sollen. In einer typischen Situation können wir verwenden. Wenn wir wollen, dass der Worker1 beginnt, die Aufgabe zu bearbeiten, verwenden wir normalerweise task.send(mailboxOfWorker1).Simgrid-Java. Senden von Anweisungen von Master zu Worker

Aber was ist mit Situation, wenn alle Daten auf worker1 Host gespeichert sind. Wie können wir Anweisungen vom Planungssystem (Master) an worker1 senden, um mit der Verarbeitung von einigen task(name, compSize, commSize) zu beginnen (wenn Daten der Aufgabe unter worker1 gespeichert sind). Oder zum Beispiel solche Situation, wie können wir Anweisungen vom Planungssystem zu worker1 so senden - zuerst Daten von worker2 herunterladen, dann (nach dem Abrufen von Daten von worker2) beginnen, sie auszuführen (auf worker1)?

+0

So möchten Sie Aufgaben einen Arbeiter an den nächsten übergeben? Haben Sie beispielsweise das Beispiel "Token_Ring" überprüft? –

+0

Ja, ich möchte, dass der Master die Aufgabe an worker1 sendet und ihm mitteilt, dass er Daten von worker2 herunterladen und dann ausführen soll. –

Antwort

1

Ich denke, dass es zwei Fragen in Ihrer Frage gibt.

Zuerst möchten Sie, dass worker1 Aufgaben an worker2 sendet. Das ist vollkommen legal, nichts hindert Sie daran. In den Beispielen gibt es dafür viele Beispiele, wie beispielsweise token_ring.

Dann möchten Sie einige zusätzliche Informationen an die Aufgabe angehängt haben. Das ist auch völlig legal. In Java ist es am besten, eine neue Klasse zu deklarieren, die die Aufgabe ableitet, und die zusätzlichen Felder hinzuzufügen, die Sie benötigen. Dies ist in vielen Beispielen auch getan, wie bittorrent, chord oder kademlia ...