scala – 将回调方法实现转换为akka流源
发布时间:2020-12-16 18:16:51 所属栏目:安全 来源:网络整理
导读:我正在使用我无法控制的 java库中的数据发布者.发布商库使用典型的回调设置;在库代码中的某个地方(库是java,但我将在scala中描述terseness): type DataType = ???trait DataConsumer { def onData(data : DataType) : Unit} 库的用户需要编写一个实现onData
我正在使用我无法控制的
java库中的数据发布者.发布商库使用典型的回调设置;在库代码中的某个地方(库是java,但我将在scala中描述terseness):
type DataType = ??? trait DataConsumer { def onData(data : DataType) : Unit } 库的用户需要编写一个实现onData方法的类并将其传递给DataProducer,库代码如下所示: class DataProducer(consumer : DataConsumer) {...} DataProducer有自己无法控制的内部线程,以及随附的数据缓冲区,只要有另一个DataType对象要使用它就调用onData. 所以,我的问题是:如何编写一个将原始库模式转换/转换为akka流Source对象的图层? 先感谢您. 解决方法
有多种方法可以解决这个问题.一种是使用ActorPublisher:
http://doc.akka.io/docs/akka-stream-and-http-experimental/1.0-M5/scala/stream-integrations.html#Integrating_with_Actors,您可以在其中更改回调,以便它向actor发送消息.根据回调的工作方式,您也可以使用mapAsync(将回调转换为Future).只有在一个请求产生一个回调调用时,这才有效.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |