小编kil*_*ilo的帖子

Akka:如何制作非阻塞JDBC请求

我是Akka(Java lib)的新手,我试图了解Akka是否可以用来向JDBC发出非阻塞请求,如果是这样,它会是什么样子.我相信大多数JDBC驱动程序打开一个套接字连接并阻塞创建它的线程,直到收到一个特定的JDBC响应,因此可能没有太多的Akka可以帮助到这里,但我想知道是否有办法(也许通过期货或代理?)Akka可以帮助提高性能,并允许actor系统继续处理数据,同时正在进行现有的JDBC调用并等待响应.

我发现这篇文章有点模糊/含糊不清,但听起来未来可能是关键所在.然而,该文章并没有真正展示任何有意义的(真实世界)代码示例,因此我仍然处于亏损状态.因此,假设我们有一个存储过程,sp_make_expensive_calculation通常需要10 - 30秒才能返回响应,并且通常通过JDBC调用,如下所示:

String makeExpensiveCalculationSql = "{call sp_make_expensive_calculation(?)}";
callableStatement = dbConnection.prepareCall(makeExpensiveCalculationSql);
callableStatement.setInt(1, 10);

// Could take up to 30 seconds to complete.
callableStatement.executeUpdate();

int answer = callableStatement.getString(2);
Run Code Online (Sandbox Code Playgroud)

Akka可以做任何事情来帮助这些,以便演员系统可以继续处理数据(甚至可以进行其他sp_make_expensive_calculation调用),同时我们等待第一次调用返回吗?

java jdbc akka

9
推荐指数
1
解决办法
4195
查看次数

在Scala中增加Short类型变量的最简洁方法是什么?

我最近在Scala中实现二进制网络协议.数据包中的许多字段自然地映射到Scala Shorts.我想简要地增加一个Short变量(不是一个值).理想情况下,我想要的东西s += 1(适用于Ints).

scala> var s = 0:Short
s: Short = 0

scala> s += 1
<console>:9: error: type mismatch;
 found   : Int
 required: Short
              s += 1
                ^

scala> s = s + 1
<console>:8: error: type mismatch;
 found   : Int
 required: Short
       s = s + 1
             ^

scala> s = (s + 1).toShort
s: Short = 1

scala> s = (s + 1.toShort)
<console>:8: error: type mismatch;
 found   : Int …
Run Code Online (Sandbox Code Playgroud)

primitive scala primitive-types

8
推荐指数
1
解决办法
794
查看次数

标签 统计

akka ×1

java ×1

jdbc ×1

primitive ×1

primitive-types ×1

scala ×1