bitcoin-atm

bitcoin atm for pyc inc.

git clone https://9o.is/git/bitcoin-atm.git

commit a6e1c6bf2c05bff87c7a6e32f2bc0ca2ed839bdf
parent 300310e88f45a6de41d8e2a726fff6797c158671
Author: Jul <jul@9o.is>
Date:   Thu,  7 Aug 2014 06:10:46 -0700

supervisor template for PriceTicker and Wallet actors. Needs test cases.

Diffstat:
Msrc/main/scala/inc/pyc/chimera/bitcoin/PriceTicker.scala | 8++++++++
Msrc/main/scala/inc/pyc/chimera/bitcoin/Wallet.scala | 9+++++++++
2 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/src/main/scala/inc/pyc/chimera/bitcoin/PriceTicker.scala b/src/main/scala/inc/pyc/chimera/bitcoin/PriceTicker.scala @@ -7,6 +7,7 @@ import snippet.EventUpdate import akka.actor._ import akka.event._ import akka.util.Timeout +import SupervisorStrategy._ import akka.pattern.{ask, pipe} import scala.concurrent._ import duration._ @@ -78,6 +79,13 @@ class PriceTicker extends Actor with ActorLogging { import BitcoinService._ import PriceTicker._, commands._ + + override val supervisorStrategy = + OneForOneStrategy(maxNrOfRetries = 10, withinTimeRange = 1 minute) { + case _: java.net.ConnectException => Resume + case t => + super.supervisorStrategy.decider.applyOrElse(t, (_: Any) => Escalate) + } /** The current service to use to check price. */ private var service: ActorRef = createServiceActor(Lycia.servicePriceTicker) diff --git a/src/main/scala/inc/pyc/chimera/bitcoin/Wallet.scala b/src/main/scala/inc/pyc/chimera/bitcoin/Wallet.scala @@ -7,6 +7,7 @@ import snippet.EventUpdate import akka.actor._ import akka.event._ import akka.util._ +import SupervisorStrategy._ import akka.pattern.{ask, pipe} import BitcoinServices.system.dispatcher import scala.concurrent._, duration._ @@ -64,6 +65,14 @@ class Wallet extends Actor with ActorLogging { import BitcoinServices._ import BitcoinService._ import Wallet._, commands._ + + + override val supervisorStrategy = + OneForOneStrategy(maxNrOfRetries = 10, withinTimeRange = 1 minute) { + case _: java.net.ConnectException => Resume + case t => + super.supervisorStrategy.decider.applyOrElse(t, (_: Any) => Escalate) + } /** The current service to use to check price. */ private var service: ActorRef = createServiceActor(Lycia.serviceWallet)