Sha256: b091cda2e09584330e8b627c9992725b313b5f9a549a16eb814cc411c6eb5c0c

Contents?: true

Size: 1023 Bytes

Versions: 1

Compression:

Stored size: 1023 Bytes

Contents

package org.embulk.output.fluentd.sender

import akka.actor.{ActorRef, ActorSystem, Props, Terminated}
import akka.stream.{ActorMaterializer, ActorMaterializerSettings, Supervision}

import scala.concurrent.{ExecutionContext, Future}

case class ActorManagerImpl(implicit val system: ActorSystem) extends ActorManager {
  val supervisor: ActorRef = system.actorOf(Props[SuperVisor])
  val decider: Supervision.Decider = {
    case _: Exception => Supervision.Resume
    case _            => Supervision.Stop
  }
  implicit val materializer = ActorMaterializer(
    ActorMaterializerSettings(system)
      .withSupervisionStrategy(decider)
      .withDispatcher("blocking-dispatcher"))

  implicit val dispatcher: ExecutionContext =
    system.dispatchers.lookup("blocking-dispatcher")
}

trait ActorManager {
  implicit val system: ActorSystem
  val supervisor: ActorRef
  implicit val materializer: ActorMaterializer
  def terminate(): Future[Terminated] = system.terminate()
  implicit val dispatcher: ExecutionContext
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
embulk-output-fluentd-0.1.0 src/main/scala/org/embulk/output/fluentd/sender/ActorManager.scala