-
8月25日
-
Scala学习笔记<2>:异步FutureTask实例
实例代码:
package com.blogchong.scala.futuretask import java.util.concurrent.{FutureTask, Callable, TimeUnit} /** * Author: blogchong * Blog: www.blogchong.com * Mailbox: blogchong@163.com * Data: 2015/8/25 * Describe: 异步futuretask实例 */ calss FutureTaskExample { //异步请求方法 def getAsyn(testList: util.List[Any]) = { //添加异步请求。注意FutureTask定义的返回值,可以随意定义,但是与call返回值对应 val tasks: util.List[FutureTask[String]] = new util.ArrayList[FutureTask[String]]() testList.map { f => val futureTask: FutureTask[String] = new FutureTask(new Callable[String] { def call: String = { //具体需要做的异步操作,比如请求http "any" //返回值,定义的是String } }); tasks.add(futureTask) threadPoolService.executor(Names.CACHED).execute(futureTask) } //串行获取异步请求结果 val lres = new util.ArrayList[String]() tasks.map { f => val task: FutureTask[String] = f try { val sinfo = task.get(30000, TimeUnit.MILLISECONDS) lres.add(sinfo) } catch { case e: Exception => { logger.error("异步请求出错:" + e.printStackTrace) task.cancel(true) } } } //获取请求的值 lres.map { dd => JSONArray.fromObject(dd).map { kks => //具体解析过程 } } } }
标签:原创博文 scala FutureTask Scala学习笔记
除非注明,文章均为博客虫-数据虫巢|大数据博客原创,转载请注明本文地址:http://www.blogchong.com/post/125.html
当前位置: 首页 >> 原创-Scala学习笔记 >> 正文
- 评论:(2)
- 隐藏评论
【评论很精彩,有内幕、有真相!】