+act - 15757 - Reworks implementation of ActorSystem shutdown
* deprecates awaitTermination, shutdown and isTerminated * introduces a terminate-method that returns a Future[Unit] * introduces a whenTerminated-method that returns a Future[Unit] * simplifies the implementation by removing blocking constructs * adds tests for terminate() and whenTerminated
This commit is contained in:
parent
3ca27a54ad
commit
cd8e97c060
51 changed files with 183 additions and 169 deletions
|
|
@ -53,13 +53,13 @@ class Listener extends Actor with ActorLogging {
|
|||
log.info("Current progress: {} %", percent)
|
||||
if (percent >= 100.0) {
|
||||
log.info("That's all, shutting down")
|
||||
context.system.shutdown()
|
||||
context.system.terminate()
|
||||
}
|
||||
|
||||
case ReceiveTimeout =>
|
||||
// No progress within 15 seconds, ServiceUnavailable
|
||||
log.error("Shutting down due to unavailable service")
|
||||
context.system.shutdown()
|
||||
context.system.terminate()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ object EchoServer extends App {
|
|||
|
||||
// make sure to stop the system so that the application stops
|
||||
try run()
|
||||
finally system.shutdown()
|
||||
finally system.terminate()
|
||||
|
||||
def run(): Unit = {
|
||||
import ActorDSL._
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ import java.net.InetSocketAddress
|
|||
import akka.testkit.{ ImplicitSender, TestProbe, AkkaSpec }
|
||||
import akka.util.ByteString
|
||||
|
||||
import scala.concurrent.Await
|
||||
import scala.concurrent.duration.Duration
|
||||
|
||||
object PullReadingExample {
|
||||
|
||||
class Listener(monitor: ActorRef) extends Actor {
|
||||
|
|
@ -77,7 +80,6 @@ class PullReadingSpec extends AkkaSpec with ImplicitSender {
|
|||
client.send(connection, ResumeReading)
|
||||
client.expectMsg(Received(ByteString("hello")))
|
||||
|
||||
system.shutdown()
|
||||
system.awaitTermination
|
||||
Await.ready(system.terminate(), Duration.Inf)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -322,7 +322,7 @@ trait PersistenceDocSpec {
|
|||
|
||||
processor ! PersistentBatch(List(Persistent("a"), Persistent("b")))
|
||||
//#batch-write
|
||||
system.shutdown()
|
||||
system.terminate()
|
||||
}
|
||||
|
||||
new AnyRef {
|
||||
|
|
|
|||
|
|
@ -284,7 +284,7 @@ class TestkitDocSpec extends AkkaSpec with DefaultTimeout with ImplicitSender {
|
|||
//#put-your-test-code-here
|
||||
val probe = TestProbe()
|
||||
probe.send(testActor, "hello")
|
||||
try expectMsg("hello") catch { case NonFatal(e) => system.shutdown(); throw e }
|
||||
try expectMsg("hello") catch { case NonFatal(e) => system.terminate(); throw e }
|
||||
//#put-your-test-code-here
|
||||
|
||||
shutdown(system)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue