akka {

  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "WARNING"

  actor {
    # cluster is better(recommend by official document), but I prefer remote
    provider = remote
    allow-java-serialization = off

    serialization-bindings {
        "com.github.kfcfans.powerjob.common.OmsSerializable" = jackson-cbor
    }
  }
  remote {
    artery {
      transport = tcp # See Selecting a transport below
      # over write by code
      canonical.hostname = "127.0.0.1"
      canonical.port = 25520
    }
  }

  # dispatcher
  task-tracker-dispatcher {
    # Dispatcher is the name of the event-based dispatcher
    type = Dispatcher
    # What kind of ExecutionService to use
    executor = "fork-join-executor"
    # Configuration for the fork join pool
    fork-join-executor {
      # Min number of threads to cap factor-based parallelism number to
      parallelism-min = 2
      # Parallelism (threads) ... ceil(available processors * factor)
      parallelism-factor = 4.0
      # Max number of threads to cap factor-based parallelism number to
      parallelism-max = 64
    }
    # Throughput defines the maximum number of messages to be
    # processed per actor before the thread jumps to the next actor.
    # Set to 1 for as fair as possible.
    throughput = 10
  }

  processor-tracker-dispatcher {
    type = Dispatcher
    executor = "fork-join-executor"
    fork-join-executor {
      parallelism-min = 2
      parallelism-factor = 2.0
      parallelism-max = 64
    }
    throughput = 10
  }

  worker-common-dispatcher {
      type = Dispatcher
      executor = "fork-join-executor"
      fork-join-executor {
        parallelism-min = 2
        parallelism-factor = 2.0
        parallelism-max = 8
      }
      throughput = 10
    }
}