从Akka(Scala)应用里调用Matlab编译出的Jar文件

公司的这个项目使用Akka编写应用软件,调用我的同事使用Matlab编写的算法。同事使用Matlab的编译功能,将算法构建生成成Jar文件。该jar文件放到akka项目的lib目录下。

Akka工程中创建一个Actor Class 起名 Calculator, 使用PinnedDispatcher,这是为了,让一个Actor一直使用线程池中的一个线程。

代码片段如下:


class Calculator extends Actor with ActorLogging {
    val w = new UdanRemoteCalculateTotalBalanceTime // class from Matlab compiled jar file

    def receive = {
        case TotalCalc(fn, ocvFilepath, ratedCapacity, battCount) ⇒
            
            log.info(s"${self.path} TC ${fn} ${ocvFilepath} ${ratedCapacity} ${battCount}")
                Try{
                    w.CalculateTotalBalanceTime(1, fn, ocvFilepath, ratedCapacity)
                } match {
                    case Success(t) ⇒
                        val v = t(0).asInstanceOf[MWNumericArray].getIntData.map(_.toString).mkString(" ")  
                        sender.!(Calculated(v))
                    case Failure(e) ⇒ log.error(e.getMessage)
                }
      }
}

英文版

Calling Matlab compiled in jar file from within Akka for Scala

https://techlzj.blogspot.com/2020/02/calling-matlab-compiled-in-jar-file.html

zhongjian.lu+csdn@gmail.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值