akka 笔记

调度篇

scheduleAtFixedRate 和 scheduleWithFixedDelay
image
在 Scala 中,你可以使用 Akka 的定时任务库来实现定时打印 1 到 100 的功能。下面是一个简单的示例代码:

import akka.actor.ActorSystem
import scala.concurrent.duration._

object ScheduledTaskExample {
  def main(args: Array[String]): Unit = {
    val system = ActorSystem("ScheduledTaskSystem")

    implicit val ec = system.dispatcher

    val task = system.scheduler.schedule(0 seconds, 1 second) {
      for (i <- 1 to 100) {
        println(i)
      }
    }

    // 等待一段时间后取消定时任务
    system.scheduler.scheduleOnce(10 seconds) {
      task.cancel()
      system.terminate()
    }
  }
}

在这个示例中,我们创建了一个 ActorSystem,并使用 scheduler.schedule 方法来实现每隔一秒打印 1 到 100 的功能。然后使用 scheduler.scheduleOnce 方法来在 10 秒后取消定时任务并终止 ActorSystem。你可以根据实际需求进行相应的调整和扩展。

image
image

posted @ 2023-11-09 14:30  三里清风18  阅读(43)  评论(0)    收藏  举报