嘿,我读了这个jdbc文档https://www.playframework.com/documentation/2.1.0/ScalaDatabase这个问题Isitgoodtoputjdbcoperationsinactors?现在我的mysql事务有一个ActorClass,每当有请求时,这个actor就会实例化几次。所以每个请求都会实例化新的Actor。连接池安全吗?我可以用吗valconnection=DB.getConnection()连接对象可以处理异步事务吗?所以我可以只用一个单例来处理mysql连接并在所有实例化的actor中使用它。另外,如果我想使用anorm,如何
我正在使用reactivemongo-akka-stream,并试图改变AkkaStreamCursor.documentSource。我正在看到两个问题:这文档指出此操作返回Source[T,NotUsed]但collection.find(query).cursor[BSONDocument].doccumentSource()返回aSource[BSONDocument,Future[State]]。有没有办法避免状态对象?假设我使用Future[State]我希望获得下面的课程来源caseclassInner(foo:String,baz:Int)caseclassOuter(bar:
我们正在从基于python的环境转移到scalaplay框架之一,我必须编写一个缓冲的发布者订阅者,它将与另一个用python编写的系统交互。这里的目标是编写一个发布者,它会从缓冲区/队列中获取消息,并通过TCP套接字将它们发送到服务器,并保持套接字打开,以便我们以后可以重用它。我们的旧python发布者创建了一个永远不会关闭的socket.socket(socket.AF_INET,socket.SOCK_STREAM)套接字,并使用调度程序从队列中取出消息并通过流式套接字发送它们。我对使用akkastreamingio很感兴趣,但我不知道如何创建一个与调度程序一起工作的流套接字,定
我有以下流程:valactorSource=Source.actorRef(10000,OverflowStrategy.dropHead)valtargetSink=Flow[ByteString].map(_.utf8String).via(newJsonStage()).map{json=>MqttMessages.jsonToObject(json)}.to(Sink.actorRef(self,"Done"))sourceRef=Some(Flow[ByteString].via(conn.flow).to(targetSink).runWith(actorSource))在
我有一个简单的客户端服务器程序服务器监听如下valmanager=IO(Tcp)manager!Bind(self,myAddress,1,options)然后在接收循环overridedefreceive={caseb@Bound(addr)=>{log.info("bound")myAddress=addrbBound=true}casec@Connected(remoteAddress,localAddress)=>log.info("ClientConnected.Remote:{}Local:{}",remoteAddress,localAddress)myAPAddress
我有一个actor在preStart上绑定(bind)一个端口,然后期待Tcp.Bound消息。然后,它将等待Tcp.Connected发生。这个Actor没有向其创建者提供任何东西,所以我想接收Tcp消息和/或模拟Tcp管理器到目前为止,我尝试将我的TestKit探测器订阅到tcp消息。除此之外,我希望创建一个可以覆盖管理器的类,但仍然不知道该怎么做。我正在使用Java8和JUnit5。@OverridepublicvoidpreStart(){this.connection=Tcp.get(getContext().getSystem()).manager();this.conne
我对AkkaTCPIO有奇怪的行为,问题是连接重置,由于从处理程序或Terminating处理程序显式调用TcpMessage.abort()。对等端未收到Tcp.ConnectionClosed事件。示例:接收处理程序@OverridepublicvoidonReceive(Objectmsg)throwsException{if(msginstanceofTcp.ConnectionClosed){log.info("ServerConnectionClosed:{}",msg);getContext().stop(getSelf());}elseif(msginstanceofT
我正在尝试使用akka-streams的Tcp客户端向数据库发送查询,但我不明白我错过了什么。所以我有两种类型Query和Response可以完美地转换为akka的ByteString或从ByteString转换。因此,我正在使用valconn=Tcp().outgoingConnection("localhost",28015)创建客户端连接,这为我提供了一个Flow[ByteString,ByteString,Future[OutgoingConnection]],到目前为止一切顺利。所以我假设源是我对查询的请求,我找不到用查询源提供此流程的最佳方法,而是像Source(Futur
我有2个系统:系统1正在运行akka和HAProxy,系统2正在运行向akka发出请求的REST组件。Akka在系统1的端口4241上运行。当没有HAProxy时,系统2能够连接到系统1。我在系统1上安装HAProxy后,从系统2到系统1的请求出错,日志如下:ERROR[deal-akka.actor.default-dispatcher-18]EndpointWriter-droppingmessage[classakka.actor.ActorSelectionMessage]fornon-localrecipient[Actor[akka.tcp://akkaSystemName
在下面的代码中GSMmockunbound永远不会记录,即使“禁用”消息已发送到服务器。如何正确解除绑定(bind)akkatcp服务器?classGsmRouterextendsActor{importTcp._importcontext.systemvalname=this.getClass().getName()vallogger=LoggerFactory.getLogger(name)defreceive={case"enable"=>IO(Tcp)!Bind(self,ConfigurationUtils.gsmRouterAddress)case"disable"=>IO