Skip to content

Commit 869e98b

Browse files
committed
improve readability
1 parent 1fef4f1 commit 869e98b

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

chapter12/src/main/scala/com/reactivedesignpatterns/chapter12/ActivePassive.scala

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,7 @@ object ActivePassive {
4242

4343
private var rejected = 0
4444

45-
val cluster = Cluster(context.system)
46-
47-
import context.dispatcher
48-
val timer = context.system.scheduler.schedule(1.second, 1.second, self, Tick)
45+
val timer = context.system.scheduler.schedule(1.second, 1.second, self, Tick)(context.dispatcher)
4946
override def postStop() = timer.cancel()
5047

5148
log.info("taking over from local replica")
@@ -99,10 +96,13 @@ object ActivePassive {
9996
replicating += r.seq -> (r, replicationFactor)
10097
disseminate(r)
10198
}
99+
102100
private def disseminate(r: Replicate): Unit = {
103101
val req = r.copy(replyTo = self)
104-
cluster.state.members.foreach(m => replicaOn(m.address) ! req)
102+
val members = Cluster(context.system).state.members
103+
members.foreach(m => replicaOn(m.address) ! req)
105104
}
105+
106106
private def replicaOn(addr: Address): ActorSelection =
107107
context.actorSelection(localReplica.path.toStringWithAddress(addr))
108108
}
@@ -246,6 +246,7 @@ object ActivePassive {
246246
}
247247

248248
private def getMembers(n: Int): Seq[Address] = {
249+
// using .iterator to avoid one intermediate collection to be created
249250
random.shuffle(cluster.state.members.iterator.map(_.address).toSeq).take(n)
250251
}
251252
private def askAround(seq: Int): Unit = {

chapter16/src/main/scala/com/reactivedesignpatterns/chapter16/EventStream.scala

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,13 @@ class TopProductListener extends Actor with ActorLogging {
8989
.collect { case EventEnvelope(_, _, _, add: ItemAdded) => add }
9090
.groupedWithin(100000, 1.second)
9191
.addAttributes(Attributes.asyncBoundary)
92-
.runForeach { seq =>
93-
val histogram = seq.foldLeft(Map.empty[ItemRef, IntHolder]) { (map, event) =>
94-
map.get(event.item) match {
95-
case Some(holder) => { holder.value += event.count; map }
96-
case None => map.updated(event.item, new IntHolder(event.count))
97-
}
92+
.runForeach { seq: Seq[ItemAdded] =>
93+
val histogram = seq.foldLeft(Map.empty[ItemRef, IntHolder]) {
94+
(map, event) =>
95+
map.get(event.item) match {
96+
case Some(holder) => { holder.value += event.count; map }
97+
case None => map.updated(event.item, new IntHolder(event.count))
98+
}
9899
}
99100
self ! TopProducts(0, histogram.map(p => (p._1, p._2.value)))
100101
}

0 commit comments

Comments
 (0)