想象一下这样的情况:我们有一个调度系统(1个主机),例如,有6个计算机(工人)打算从调度系统执行指令。在典型情况下,我们可以使用task = new Task(name, computingSize, communicationSize)。如果我们希望worker1开始处理任务,我们通常使用task.send(mailboxOfWorker1)。
但是,当所有数据都存储在worker1主机上时,情况又如何呢?如何从调度系统(Master)向worker1发送指令,开始处理task(name, compSize, commSize)(任务数据存储在worker1上)。或者,在这种情况下,我们如何从调度系统向worker1发送指令--首先从worker2下载数据,然后(在从worker2检索数据之后)开始执行它们(在worker1上)?
发布于 2016-04-07 20:42:06
我认为你的问题中有两个问题。
首先,您希望让worker1将任务发送到worker2。这是完全合法的,没有什么能阻止你这么做。在这些例子中有很多这样的例子,比如token_ring。
然后,您希望将一些额外的信息附加到任务中。这也是完全合法的。在Java中,最好的方法是声明一个新的类派生任务,并添加所需的额外字段。在许多例子中也是这样做的,例如bittorrent、chord或kademlia.
https://stackoverflow.com/questions/36485083
复制相似问题