Я понял это. Существует плагин akka akka-quartz-scheduler , который позволяет настроить некоторую конфигурацию кварцевого расписания следующим образом: Добавьте этот раздел в akka.conf
akka {
quartz.schedules {
SomeSchedule {
expression = "0 0 1 * * ?"
timezone = "GMT-7"
description = "Do something every day at 1 a.m. SF time."
}
}
}
Тогда запланируйте это
case class Signal(someData: String)
implicit val system: ActorSystem = ActorSystem("lebulbeaux-system")
implicit val materializer: ActorMaterializer = ActorMaterializer()
// needed for the future flatMap/onComplete in the end
implicit val executionContext: ExecutionContextExecutor = system.dispatcher
val source: Source[Signal, ActorRef] = Source.actorRef[Signal](100, OverflowStrategy.fail)
val ref: ActorRef = Flow[Signal].to(Sink.foreach(signal => println(signal.someData))).runWith(source)
import com.typesafe.akka.extension.quartz.QuartzSchedulerExtension
QuartzSchedulerExtension(system).schedule("SomeSchedule", ref, Signal("Hello!"))
// scroll
И теперь вы будете получать сигнальное сообщение каждый день в 1 час по SF времени.
Кроме того, посмотрите на эту проблему , чтобы узнать больше о возможностях использования Source.actorRef