簡體   English   中英

一起玩Akka Actors網絡和非網絡應用程序

[英]Play Akka Actors web and non-web application working together

我創建了一個具有Web服務器和ssh服務器一起工作的應用程序。 目前,SSH服務器是在Play中運行的Singleton。 因此,它是一個在后台運行SSH服務器的播放應用程序。

我希望ssh服務器不依賴於Web部件的100%。 它們可以在單獨的服務器上運行以使其易於擴展也很好。

由於我正在使用Play(在Akka上構建),因此我認為Actors是一個不錯的解決方案。 但是,應該如何實施呢?

Web和非Web部件都需要一些相同的類,例如:它們都需要具有可在兩個應用程序之間發送的User類。 這些必須通過演員發送。 但是網絡和非網絡部分是不同的東西。

是否可以將2個項目構建為具有不同入口點的1個項目? 這樣,我仍然可以使用相同的類,並且在通過actor發送時它們將正確序列化,因為它們是完全相同的。 還是有其他/更好的方式?

我已經在Play文檔https://www.playframework.com/documentation/2.6.x/SBTSubProjects中找到了此頁面。 但這是“先播放”,我希望兩個應用程序都能夠獨立運行。

您可以查看用於多項目構建的sbt文檔

build.sbt文件中,您可以創建以下部分:

lazy val shared = (project in file("shared"))

lazy val ssh = (project in file("ssh"))
  .dependsOn(shared)

lazy val http = (project in file("http"))
  .enablePlugins(PlayScala)
  .dependsOn(shared)

這樣,您將擁有共享的代碼和分離的部分。 您還可以添加另一個項目,該項目將ssh和http部分聚合到一個項目中。

為了在兩個部分之間進行通信,可以將akka與遠程actor一起使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM