2019独角兽企业重金招聘Python工程师标准>>>

akka提供了两个关于时长的数据类型:Duration 和 Deadline,比如5秒钟这种含义。

Duration.Inf表示无限,Duration.MinusInf表示负无限

Deadline, 表示一个绝对的时间点,意义是最终期限,并且支持通过计算当前时间到deadline之间的差距来生成Duration

下面是使用方法:

import akka.util.Duration
import java.util.concurrent.TimeUnit
import akka.util.FiniteDuration
import akka.util.Deadline
import akka.dispatch.Await
import akka.dispatch.Futures
import java.util.concurrent.Callable
import akka.dispatch.Future
import akka.actor.ActorSystem

class DurationTest extends GroovyTestCase {
    def testDurationUse() {
        println new FiniteDuration(5, TimeUnit.SECONDS)
        println Duration.create(5d, TimeUnit.SECONDS)
        println Duration.create(5, "second")
        println Duration.create(5L, "second")
        println()
        println Duration.parse("5second")
        println Duration.parse("5 second")
        println Duration.parse("5 seconds")
        println Duration.parse("5seconds")
        println()
        println Duration.Inf()
        println Duration.Zero()
        println Duration.MinusInf()

}

def testDeadline() {
        Deadline d = Duration.create(5, "second").fromNow()
        def future = Futures.future(new Callable<String>() {
            String call() {
                println "start...";
                sleep(1000 * 60);
                println("end...");
                return "sd";
            }
        }, ActorSystem.create("test").dispatcher())

String result = (String) Await.result(Futures.future({println "start..."; sleep(1000 * 60); println("end..."); return "sd";} as Callable, ActorSystem.create("test").dispatcher()), d.timeLeft())
        sleep(1000 * 60)
    }

def testDeadline2() {
        Future<String> f = Futures.future(new Callable<String>() {
            public String call() {
                return "Hello" + "World";
            }
        }, ActorSystem.create("test").dispatcher());
        String result = (String) Await.result(f, Duration.create(5, "second"));
        println result
    }
}

转载于:https://my.oschina.net/xiefeifeihu/blog/81112

Akka2使用探索3(Duration 和 Deadline)相关推荐

  1. Akka2使用探索1(Remoting)

    2019独角兽企业重金招聘Python工程师标准>>> akka从1.2升级到现在的2.0.2后有了很大的改变.现在摸索一下如何使用. Remoting可以方便地用于服务器之间通信. ...

  2. Akka2使用探索2(Con?guration)

    akka2使用Typesafe Config库,可以使用ConfigFactory.load()加载配置文件,默认加载classpath下的application.conf, application. ...

  3. Java并发的四种风味:Thread、Executor、ForkJoin和Actor

    原文地址:Java并发的四种风味:Thread.Executor.ForkJoin和Actor 这篇文章讨论了Java应用中并行处理的多种方法.从自己管理Java线程,到各种更好的几种解决方法,Exe ...

  4. New York City Taxi Trip Duration纽约出租车大数据探索(报告版

    一.项目说明 该项目来源于Kaggle,旨在建模来预测纽约出租车在行程中的总行驶时间. 在建模预测的过程中,我们可以顺便探索纽约市民打车出行习惯及其他有效信息. 附kaggle项目链接 https:/ ...

  5. 【Python】New York City Taxi Trip Duration纽约出租车大数据探索(技术实现过程)

    # New York City Taxi Trip Duration纽约出租车大数据探索 # 该项目来源于Kaggle,旨在建模来预测纽约出租车在行程中的总行驶时间. # 在建模预测的过程中,我们可以 ...

  6. 反应器(Reactor)模式-golang探索

    反应器模式 在以前的博文模式设计概述:反应器(Reactor)模式介绍过相关的概念和流程,当时使用了python但是从结果上来看并没有起到很明显的效果.最近在处理有关proxy的项目中,刚刚好涉及到有 ...

  7. 深度学习先驱Bengio:AI顶会论文的Deadline是时候取消了

    选自yoshuabengio.org 作者:Yoshua Bengio 机器之心编译 对于机器学习界的研究者来说,一年的进度条几乎是靠数着顶会 deadline 来过的.「投稿→rebuttal→接收 ...

  8. 《Android开发艺术探索》读书笔记——Cha3.2.2使用动画实现View的滑动

    章节来自<Android开发艺术探索> 第一种方式 3.2.2 使用动画 上一节介绍了采用scrollTo/scrollBy来实现View的滑动,本节介绍另外一种滑动方式,即使用动画,通过 ...

  9. ROS探索总结(十三)(十四)(十五)——导航与定位框架 move_base(路径规划) amcl(导航与定位)

    ROS探索总结(十三)--导航与定位框架 导航与定位是机器人研究中的重要部分.         一般机器人在陌生的环境下需要使用激光传感器(或者深度传感器转换成激光数据),先进行地图建模,然后在根据建 ...

最新文章

  1. [你必须知道的.NET]第九回:品味类型---值类型与引用类型(中)-规则无边
  2. c语言 ctype,C语言标准库系列之 -
  3. Angular 动态控制 aside 标签显示和隐藏的一个例子
  4. osal_start_timerEx(Lock_TaskID,SBP_START_DEVICE_EVT,SBP_PERIODIC_EVT_PERIOD)的理解
  5. SpringBoot使用ResponseBodyAdvice进行统一响应处理
  6. CSS样式小项目实战 - 网页变色小按钮
  7. Java面试题:热情盛夏,分享Java大厂面试百题
  8. 新浪微博android代码,新浪微博Android源代码(基于OAuth1.0 仅供学习)
  9. 郝斌_数据结构入门笔记
  10. 163接收邮件服务器pop3,pop3设置(163邮箱imap pop3设置)
  11. tkinter canvas绘图全攻略(图形项、配置参数和案例详解)
  12. PS第三课--套索和魔棒工具
  13. VEH与SetUnhandledExceptionFilter
  14. android锁屏显示
  15. 关于word中插入的mathtype公式变形问题的解决方案
  16. 上海车展:比亚迪宋L概念车全球首发,这是要硬扛特斯拉?
  17. Playing Atari with Deep Reinforcement Learning
  18. 第三次作业——肖祥英
  19. [文本纠错] pycorrector框架训练
  20. Oracle定时任务(1)-DBMS_SCHEDULER

热门文章

  1. Angular之RouterModule的forRoot与forChild
  2. 小到年货大到产业,刘村长的扶贫模式有点厉害!
  3. [读书笔记]大型分布式网站架构设计与实践.分布式缓存
  4. 传统家电在智能家居变革的五大优势
  5. jstl 处理Date 时间
  6. 腾讯2016春招之算法编程解析
  7. 使用Css截取字符串
  8. JSP PO VO BO DTO POJO DAO解释
  9. 合理支配“财富”:经理人运用时间的12种典型模式
  10. mysql 存储 事务_MYSQL 可以在存储过程里实现事务控制吗