我需要开发一个定期运行的游戏服务器(例如,由 CRON 作业根据需要每五分钟或一小时触发一次)。一旦启动,服务器将访问所有当前游戏状态(通过 REST 从游戏的数据服务器(Stackmob、Parse 或类似工具)获取),处理玩家操作,然后将结果 POST 回数据服务器。在换句话说,它会做很多 HTTP 请求,但它本身不一定需要是 Web 服务。
我一直在考虑多种开发方法。
- 我不想自己设置服务器,所以我需要找到一个服务来运行它,允许我想要的工作流程。
- 游戏引擎是 Java,因此可以与之完美配合。
- 需要 GET 和 POST 数据文件,因此需要访问静态文件。
大多数提供与我所需要的类似的东西的现有服务都是针对网络服务的——这通常意味着需要跳过一些障碍才能让事情正常工作。
- 例如,Google App Engine 会要求我使用后端来实现它(因为游戏服务器可能会运行超过 60 秒),并且对静态文件的想法不是特别满意。
- Amazon EC2 似乎更容易开发(当然,同样是通过构建 Web 服务前端),但似乎对 CRON 的支持相对较差。
总的来说,感觉就是想用弹弓打麻雀,但是所有的服务都给我发大炮。除了上面提到的两大平台/框架之外,是否还有适合此类情况的替代平台/框架?
最佳答案
你可以试试 Heroku .他们支持Java。如果您创建了一个使用 single worker dyno 的项目那么托管将是免费的(见链接)。
该进程将连续运行,因此您可能需要使用 Timer用于定期执行。您也可以使用 Quartz,但这可能有点矫枉过正。
编辑:
以下是一些可能有助于入门的链接:
- Running non-web Java processes on Heroku
- Heroku Java quickstart - 这是针对网络应用程序(“web dyno”)而不是“worker dyno”,但它可能会有所帮助。
- java.herokuapp.com有一些示例项目的链接(同样是网络应用程序而不是 worker )
关于java - 选择什么服务器平台来定期运行独立 (Java) 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9018681/