package fucoin.supervisor; import java.util.List; import akka.actor.ActorRef; import akka.actor.UntypedActorContext; import fucoin.actions.transaction.ActionCommitDistributedCommitedTransfer; import fucoin.actions.transaction.SuperVisorAction; public class ActionUpdateQueue extends SuperVisorAction{ @Override protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, SuperVisorImpl superVisor) { List<DistributedCommitedTransferRequest> deletes = superVisor.updateList(); for(DistributedCommitedTransferRequest outdatedRequest : deletes){ ActionCommitDistributedCommitedTransfer acdct = new ActionCommitDistributedCommitedTransfer(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(); } } }