I’m trying to change the underlying dispatcher of FileIO
. The docs say that it is using akka.stream. blocking-io-dispatcher
. So I configured it like this:
akka.stream {
blocking-io-dispatcher = "my-dispatcher"
}
}
my-dispatcher {
type = Dispatcher
executor = "thread-pool-executor"
thread-pool-executor {
fixed-pool-size = 10
}
throughput = 1
}
But just to be sure, I also set it explicitly in code
FileIO
.fromPath(source.value)
.withAttributes(ActorAttributes.dispatcher("my-dispatcher"))
.log(s"reading ${source.value}")
.fold(ByteString.empty)(_ ++ _)
.map(_.toArray)
.map(ImmutableImage.loader().fromBytes)
}
But the log statements are still being written using the default dispatcher. Why?
12:01:47.624UTC DEBUG[default-akka.actor.default-dispatcher-4] [akka.stream.Log(akka://default/system/Materializers/StreamSupervisor-0)] - [reading /Users/oliver/Downloads/e7lp1y1tuwt41.jpg] Element: [...]
Is the underlying file operation still done on my thread pool? Is logging just working on another thread pool? Something wrong with my assumptions or configuration?
How can I prove that the reading is done by my own thread pool?
1 post - 1 participant