akka 定时任务实例for play2.1

转载 2015年11月18日 14:12:53



    有时需要设定将来发生的事情,这时该怎么办?ActorSystem搞定一切!
    在那儿你能找到scheduler方法,它返回一个 akka.actor.Scheduler 实例, 这个实例在每个Actor系统里是唯一的,用来指定一段时间后发生的行为。
    请注意定时任务是使用ActorSystem的MessageDispatcher执行的.

    你可以计划向actor发送消息或执行任务的代码 (函数或Runnable).
    你会得到一个Cancellable类型的返回值,你可以调用cancel来取消定时任务的执行。

package controllers   
import play.api._
import play.api.mvc._  
import play.libs.Akka  
import akka.actor._
import scala.concurrent.duration._
import play.api.libs.concurrent.Execution.Implicits._
object Application extends Controller {   
def index = Action {    
// say hello     

Logger.info("hello, index action started")    

val Tick = "tick"      val Tack = "tack"    
val tickActor = Akka.system.actorOf(Props(new Actor {  
def receive = {          case Tick => Logger.info("that still ticks!")  
case Tack => Logger.warn("... 7 seconds after start, only once")       
}      }))      
// Repeat every 5 seconds, start 5 seconds after start  


Akka.system.scheduler.schedule(        5 seconds,        5 seconds,      
tickActor,        Tick      )        
// do only once, 7 seconds after start  
Akka.system.scheduler.scheduleOnce(7 seconds, tickActor, Tack)   
Ok(views.html.index("Your new application is ready."))  
}
}

相关文章推荐

akka基础 : 理解Actor 系统

Actors 是一些包含状态和行为的一些对象。它们通过显式的传递消息来进行通信,这些消息会被发送到它们收件箱中(消息队列)。某种意义上来说,actor 是面向对象编程中最严格的实现形式。为了更好的理解...

akka入门-定时器

使用定时器可以实现将来发生的事情进行计划执行。以下代码演示了过一段时间向Actor发送消息。 1.编写Actor 在Actor中只是打印出接收到的消息 import akka.actor.U...

playframework 2.2 创建定时任务计划程序

通过AkkA及Ator 在play2下实现任务计划程序的开发。 操作流程: 创建全局配置类文件 /app/Global.scala 代码内容如下: /** * Created b...

Play framework 1.2.3 Jobs定时任务、异步任务、引导任务、触发任务、关闭任务

Play framework是一个web应用程序,大部分的应用逻辑都是通过在Controllers中以响应HTTP请求的方式来完成的。 有时候你可能需要执行一些和HTTP请求无关的应用逻辑。这在...

定时器 (Scala)

有时需要设定将来发生的事情,这时该怎么办? ActorSystem 搞定一切! 在那儿你能找到 scheduler 方法,它返回一个 akka.actor.Scheduler 实例, 这个实例在每个A...

scala定时器:监测一个目录文件及文件夹的增删改查

import org.apache.commons.io.monitor.{FileAlterationObserver, FileAlterationListener, FileAlteration...

scala定时任务调度器

一个用scala写的,在linux下执行的定时任务调度器 定时任务时常会有一个定时任务依赖另一个定时任务,这份代码就是用来解决这个问题的 package com.tcl.bigdata.yhb.tim...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)