Java Play框架是否适合异步后台处理?

Java Play框架是否适合异步后台处理?,java,web-applications,playframework,playframework-2.0,akka,Java,Web Applications,Playframework,Playframework 2.0,Akka,我将构建一个web应用程序,用于主办城市游戏 一个用户访问我的网站,点击“开始游戏”,在到达某个位置时开始收到一些短信,并且必须回答这些短信才能得分 Play适合这种应用吗?单击“开始游戏”按钮后,某些逻辑必须自行进行。我如何并行地检查玩家的地理位置(我有API)?我想每隔~5秒打一次球员。做一些逻辑分析。当然,用户必须能够在处理其位置、分配点、发送和接收消息等的同时使用web应用程序 总而言之:我想要一个在游戏中编写的应用程序,在单击“开始游戏”后为游戏启动一个单独的线程,其他用户可以查看他们

我将构建一个web应用程序,用于主办城市游戏

一个用户访问我的网站,点击“开始游戏”,在到达某个位置时开始收到一些短信,并且必须回答这些短信才能得分

Play适合这种应用吗?单击“开始游戏”按钮后,某些逻辑必须自行进行。我如何并行地检查玩家的地理位置(我有API)?我想每隔~5秒打一次球员。做一些逻辑分析。当然,用户必须能够在处理其位置、分配点、发送和接收消息等的同时使用web应用程序

总而言之:我想要一个在游戏中编写的应用程序,在单击“开始游戏”后为游戏启动一个单独的线程,其他用户可以查看他们的数据(统计等),而线程按照游戏逻辑工作

我发现了类似的东西,但它们是为版本1.2记录的。经过一番阅读,结果证明这是现在推荐的一个,但它使用了和角色模型


Play+Akka对我的项目来说是个不错的选择吗?

绝对是。使用Play框架在单独的线程池(也称为ExecutionContext)中设置计算非常容易。您可能希望阅读,但简而言之,您希望在
应用程序.scala
控制器文件中执行类似操作(注意,本示例使用scala):

然后,您将在
application.conf
文件中设置一个单独的gameLogicContext线程池:

play {
  akka {
    actor {
      game-logic-context = {
        fork-join-executor {
          parallelism-min = 300
          parallelism-max = 300 // thread pool with 300 threads
        }
      }
    }
  }
}

只是想通过补充问题来解决我的疑问。Play被宣传为无状态框架。将状态存储在Cookie和DB中,只需添加更多服务器并部署相同的Play应用程序,即可轻松扩展。问题是:当我们引入持久的后台任务或只能从webapp的管理部分运行的任务时,会发生什么。我们是否应该在这一点上引入专业化?(例如:10台服务器:7台用于web前端,2台用于gps跟踪,1台用于管理部分)。如果是,gps服务器应如何与fontend服务器通信?链接和文章是感激的@dbau好的,那么Java示例呢?我发现了这个-但这不是一个广泛的文档。我可以使用简单的Java线程吗?
play {
  akka {
    actor {
      game-logic-context = {
        fork-join-executor {
          parallelism-min = 300
          parallelism-max = 300 // thread pool with 300 threads
        }
      }
    }
  }
}