PLAY2.6-SCALA(六) 异步处理结果】的更多相关文章

1.创建异步的controller Play是一个自底向上的异步框架,play处理所有的request都是异步.非阻塞的.默认的方式是使用异步的controller.换句话说,contrller中的应用代码需要避免阻塞,i.e.不能等待某一个操作. 场景的阻塞操作有JDBC调用.streaming API.HTTP请求和耗时计算.虽然可以通过增加线程池中线程的数量来让阻塞的controller处理更多的请求.还是通过以下建议使controller异步来保持程序的可靠性和可扩展性. 2.创建非阻塞…
目录 一.基本语法 二.匹配固定值 三.守卫 四.匹配类型 五.匹配集合 1.Array 2.List 3.元祖 4.对象和样例类 六.偏函数 七.赋值匹配 八.for循环匹配 一.基本语法 在匹配某个范围的数据,需要在模式匹配中增加条件守卫. 语法 变量 match { case 匹配条件 => 处理逻辑 case 匹配条件 => 处理逻辑 case 匹配条件 => 处理逻辑 case _ => 其他处理 //case x => 其他条件 如果x不在箭头右边使用,则可以用_…
个人看到对比play1.x和play2.x比较的文章中,写的最深入,最清晰的一个.转自:http://freewind.me/blog/20120728/965.html 为了方便群中的Play初学者们,写了一篇入门引导,以帮助初学者尽快了解Play.本文之前发在另一个网站,因为觉得有些不便,还是转到博客上. 欢迎来到play的世界,在这里你将体验到与传统SSH开发网站不一样的感受.我将把我学习play的感受与经验分享给大家,希望能对大家(特别是初学者)有所帮助. Play是一个非常有创造力.让…
目标       实现一千万个不重复整数的排序,可以一次性加载到 2G 的内存里. 本文适合于想要了解新语言 Scala 并发异步编程框架 Akka, Future 的筒鞋. 读完本文后,将了解如何综合使用 ForkJoin 框架. Akka 模型.以及 Future 进行并发异步编程,还有一系列小的编程点. 任务拆分 首先要进行任务拆分.要实现一千万个不重复整数的排序, 可以拆分为三个子任务: (1)  生成一千万的不重复整数并写入文件 NumberGeneratorTask: (2) 从文件…
1.进官网:https://www.scala-lang.org/ 上面就是进入Scala社区后的一个画面,官方对Scala的简单介绍是:Scala将面向对象和函数式编程集合在一个简洁的高级语言中,Scala的静态类型有助于避免复杂应用程序中的错误.Scala既有动态语言那样灵活简洁,同时又保留了静态类型带来的安全保障和执行效率,加上其强大的抽象能力,既能够处理脚本化的临时任务,又能处理高并发场景下的分布式互联网大数据应用. 2.Scala六个特性. (1)可以和java无缝整合,即在Scala…
前言....... 随着CPU的核数的增加,异步编程模型在并发领域中的得到了越来越多的应用,由于Scala是一门函数式语言,天然的支持异步编程模型,今天主要来看一下Java和Scala中的Futrue,带你走入异步编程的大门. Future 很多同学可能会有疑问,Futrue跟异步编程有什么关系?从Future的表面意思是未来,一个Future对象可以看出一个将来得到的结果,这就和异步执行的概念很像,你只管自己去执行,只要将最终的结果传达给我就行,线程不必一直暂停等待结果,可以在具体异步任务执行…
    Kafka 0.8.2引入了一个用Java写的producer.下一个版本还会引入一个对等的Java版本的consumer.新的API旨在取代老的使用Scala编写的客户端API,但为了兼容性的考虑两版API还要同时存在一段时间.另外,新版的API可以打成独立的jar包,而Scala版本的不行.     Kafka官网是鼓励用户使用java版的producer的,而kafka.core.producer包实际上是老版的实现.这个包中还包括一个async包,应该是实现异步发送的,与之平行的…
li,ol.inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:700}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;…
1. 关于这篇系列 这篇系列不是Play框架的Hello World,由于这样的文章网上已经有非常多. 这篇系列会首先结合实际代码介绍Play的特点以及适用场景.然后会有几篇文章介绍Play与Spring,JPA(Hibernate)的集成,以及一些Play应用的最佳实践. 这期间会在Github上提供一个脚手架项目.方便感兴趣的朋友直接动手尝试. 最后会简单分析Play的部分源码.帮助大家理解黑盒子的内部机制. 我水平有限,有错误欢迎指出. 2. Play介绍 Play Framework是一…
前言 Flink是大数据处理领域最近很火的一个开源的分布式.高性能的流式处理框架,其对数据的处理可以达到毫秒级别.本文以一个来自官网的WordCount例子为引,全面阐述flink的核心架构及执行流程,希望读者可以借此更加深入的理解Flink逻辑. 本文跳过了一些基本概念,如果对相关概念感到迷惑,请参考官网文档.另外在本文写作过程中,Flink正式发布了其1.5 RELEASE版本,在其发布之后完成的内容将按照1.5的实现来组织.   1.从 Hello,World WordCount开始 首先…
我的web开发最强组合:Play1+angularjs+bootstrap ++ (idea + livereload) 时间 2012-12-26 20:57:26  Freewind.me原文  http://freewind.me/blog/20121226/1167.html 首先说明我开发web的情况: 个人开发 前后端全部自己搞定 网站类型多为传统多页面程序 注重开发效率 Javascritp能力不强 美术细胞很少 由于每个人情况不同,选择技术及方案的重点也不同,所以内容仅供参考.对…
定位  本文适合于想要了解新语言 Scala 以及异步并发编程框架 Akka, Future 的筒鞋. 读完本文后,将了解如何使用 ForkJoin 框架.如何使用 Akka 构建并发程序.如何使用 Future 进行异步编程,还有一系列小的编程点. 目标       实现十亿个不重复整数的排序, 由于文件外排序没有解决,因此,暂时实现的是一千万个不重复数,可以一次性加载到 2G 的内存里.  一. 任务拆分 首先要进行任务拆分.要实现一千万个不重复整数的排序, 可以拆分为三个子任务: (1)…
// dataframe is the topic 一.获得基础数据.先通过rdd的方式获得数据 val ny= sc.textFile("data/new_york/")val header=ny.firstval filterNY =ny.filter(listing=>{ listing.split(",").size==14 && listing!=header }) //因为后面多是按照表格的形式来处理dataframe,所以这里增加…
Play Framework是一个开源的Web框架,背后商业公司是Typesafe.要介绍Play之前,首先理清Play的两个不同的分支. Play 1.x 使用Java开发,最新版本是1.3.1,只支持Java项目.从11年开始就进入了维护阶段,新项目一般不考虑使用Play1. Play 2.x 使用Scala和Java开发,同时支持Java和Scala项目. 这里主要介绍最新的Play2.4 for Java.有一点需要提前说明,虽然Play2主要由Scala开发,但是对于项目中的一般开发人…
一.前言 vuex被称为是专为vue应用程序开发的的状态管理模式.它的作用使用一句话描述就是:让组件之间可以共享数据 话不多少,先抛开概念,我们写一个简单的示例感受一波. 二.项目开发环境 项目开发环境搭建请移步作者的另外一篇文章<使用vue-cli搭建项目开发环境> 本次的项目目录如下: 三.安装vuex 使用vuex前需要先进行安装,安装命令:npm install vuex --save--dev 四.创建和访问共享数据 1.使用vuex创建全局共享数据 我们先需要在E:\MyStudy…
引言 Lagom是出品Akka的Lightbend公司推出的一个微服务框架,目前最新版本为1.6.2.Lagom一词出自瑞典语,意为"适量". https://www.lagomframework.com/documentation/1.6.x/scala/Home.html Lagom框架坚持,微服务是按服务边界Boundary将系统切分为若干个组成部分的结果,这意味着要使它们与限界上下文Bounded Context.业务功能和模块隔离等要求保持一致,才能达到可伸缩性和弹性要求,从…
Spark练习之Transformation操作开发 一.map:将集合中的每个元素乘以2 1.1 Java 1.2 Scala 二.filter:过滤出集合中的偶数 2.1 Java 2.2 Scala 三.flatMap:将行拆分为单词 3.1 Java 3.2 Scala 四.groupByKey:将每个班级的成绩进行分组 4.1 Java 2.2 Scala 五.reduceByKey:统计每个班级的总分 5.1 Java 5.2 Scala 六.sortByKey:将学生分数进行排序…
本文主要讲解Scala的并发(并行)编程,那么为什么题目概称geotrellis使用(六)呢,主要因为本系列讲解如何使用Geotrellis,具体前几篇博文已经介绍过了.我觉得干任何一件事情基础很重要,就像当年参加高考或者各种考试一样,老师都会强调基础,这是很有道理的.使用Geotrellis框架的基础就是Scala和Spark,所以本篇文章先来介绍一下Scala编程语言,同样要想搞明白Scala并发(并行)编程,Scala基础也很重要,没有Scala语言基础就谈不上Scala并发编程也就更谈不…
C#编程总结(六)异步编程 1.什么是异步? 异步操作通常用于执行完成时间可能较长的任务,如打开大文件.连接远程计算机或查询数据库.异步操作在主应用程序线程以外的线程中执行.应用程序调用方法异步执行某个操作时,应用程序可在异步方法执行其任务时继续执行. 2.同步与异步的区别 同步(Synchronous):在执行某个操作时,应用程序必须等待该操作执行完成后才能继续执行. 异步(Asynchronous):在执行某个操作时,应用程序可在异步操作执行时继续执行.实质:异步操作,启动了新的线程,主线程…
本章主要分析Scala中List的用法,List上可进行的操作,以及需要注意的地方. 一.List字面量 首先看几个List的示例. val fruit = List("apples", "oranges", "pears") val nums = List(1, 2, 3, 4) val diag3 = List( List(1, 0, 0), List(0, 1, 0), List(0, 0, 1) ) val empty = List()…
这一章主要是以定义和完善一个有理数类Rational为线索,分析和介绍有关类定义,构造函数,方法重写,变量定义和私有化,以及对操作符的定义等. 一.Rational类定义和构造函数 1.定义一个空类 class Rational(n: Int, d: Int) 如果一个class没有函数体时,可以不用写花括号,上面的代码是最简形式.圆括号中的n和d是类参数,Scala编译器会根据这两个类参数,为该类生成一个对应的包含两个参数的主构造函数. 在文本编辑器中输入以上代码后,保存为Rational.s…
一.理论基础 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所有内容都是围绕进程的概念展开的. 即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力.将一个单独的cpu变成多个虚拟的cpu(多道技术:时间多路复用和空间多路复用+硬件上支持隔离),没有进程的抽象,现代计算机将不复存在. 必备的理论基础: #一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将…
续前文: 中文代码示例之Programming in Scala学习笔记第二三章. 同样仅节选有意思的例程部分作演示之用. 源文档仍在: program-in-chinese/Programming_in_Scala_study_notes_zh 第六章 功能对象 此章的例子与之前的初步尝试将传统学科的内容程序/数据化有些共鸣, 以后的数学知识部分可以参考此实现. class 有理数(分子: Int, 分母: Int) { require(分母 != 0) private val 公约数 = 最…
在任何并发性应用程序中,异步事件处理都至关重要.无论事件的来源是什么(不同的计算任务.I/O 操作或与外部系统的交互),您的代码都必须跟踪事件,协调为响应它们而执行的操作.应用程序可以采用两种基本方法之一来实现异步事件处理: 阻塞:一个等待事件的协调线程. 非阻塞:事件向应用程序生成某种形式的通知,而没有线程显式等待它. 合成事件 scala.concurrent.Promise 和 scala.concurrent.Future 类为 Scala 开发人员提供了一些与 Java 8 开发人员的…
python之协程 阅读目录 一 引子 二 协程介绍 三 Greenlet 四 Gevent介绍 五 Gevent之同步与异步 六 Gevent之应用举例一 七 Gevent之应用举例二 一 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操作系统强制控制),一种情况是该任务发生了阻塞,另外一种情况是该任务计算的时间过长或有一个…
一.List字面量 List是Scala中非常重要的一个数据结构,其与Array(数组)非常类似,但是List是不可变的,和Java中的List一样,其底层实现是链表. scala> val list = List("hadoop", "spark", "storm") list: List[String] = List(hadoop, spark, storm) // List是不可变 scala> list(1) = "…
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Selector Java NIO 学习笔记(四)----文件通道和网络通道 Java NIO 学习笔记(五)----路径.文件和管道 Path/Files/Pipe Java NIO 学习笔记(六)----异步文件通道 AsynchronousFileChannel Java NIO 学习笔记(七)----N…
一.List字面量 List 是 Scala 中非常重要的一个数据结构,其与 Array(数组) 非常类似,但是 List 是不可变的,和 Java 中的 List 一样,其底层实现是链表. scala> val list = List("hadoop", "spark", "storm") list: List[String] = List(hadoop, spark, storm) // List 是不可变 scala> list…
一.本章要点 XML字面量<like>this</like>的类型为NodeSeq 可以在XML字面量中内嵌Scala代码 Node的child属性产出后代节点 Node的attributes属性产出包含节点属性的MetaData对象 \和\\操作符执行类Xpath匹配 可以在case语句中使用XML字面量匹配节点模式 使用带有RewriteRule示例的RuleTransformer来变换某个节点的后代 XML对象利用Java的XML相关方法实现XML文件的加载和保存 Const…
一.本章要点 用对象作为但例或存放工具的方法 类可以拥有一个同名的伴生对象 对象可以扩展类或特质 对象的apply方法通常用来构造伴生类的新实例 如果不想显示定义main方法,可以扩展App特质的对象 你可以通过扩展Enumeration对象来实现枚举 二.单例对象 Scala没有静态方法或静态字段,可以使用object语法结构达到同样的目的,对象定义了某个类的单个实例,包含了你想要的特性. 例:直接调用Accounts.newUniqueNumber()就可以创建一个新的唯一帐号,对象的构造器…