Newer
Older
package fucoin.supervisor;
import akka.actor.ActorRef;
import akka.actor.UntypedActorContext;
import fucoin.actions.transaction.ActionCommitDistributedCommittedTransfer;
import java.util.List;
public class ActionUpdateQueue extends SuperVisorAction {
@Override
protected void onAction(ActorRef sender, ActorRef self,
UntypedActorContext context, SuperVisorImpl superVisor) {
List<DistributedCommittedTransferRequest> deletes = superVisor.updateList();
for (DistributedCommittedTransferRequest outdatedRequest : deletes) {
ActionCommitDistributedCommittedTransfer acdct = new ActionCommitDistributedCommittedTransfer(outdatedRequest);
for (ActorRef neighbor : superVisor.getKnownNeighbors().values()) {
neighbor.tell(acdct, self);
}
}
sleep(self, context, 1000);
self.tell(this, self);
}
private void sleep(ActorRef self, UntypedActorContext context, int sleeptime) {
try {
context.unwatch(self);
Thread.sleep(sleeptime);
context.watch(self);
} catch (InterruptedException e) {
e.printStackTrace();
}
}