我正在制作一个应用程序作为一种学习体验,我遇到了两个主要问题:
1)我有一个对奥尔良来说可能不是一个好主意的实现......我只是不知道。
2)我正在寻找有关托管和部署的建议,基本上:在哪里以及如何?这只是一种学习体验,所以小而便宜/免费很重要。
所以,开始......关于我正在制作的应用程序的一些信息:
- 这是一个基于 MongoDB 存储的移动 gps 应用程序。
- 现实世界被划分为不同且持久的区域、gps 位置块。
- 当用户在给定区域中处于活动状态时,该区域中的所有其他用户都可以看到他,并且他开始接收有关该区域的属性和该区域中其他活动用户的位置的更新。
- 用户可以操作区域的属性。
- 用户需要能够明确地加入和离开区域,但也需要在超时后离开。
我有两个谷物:UserGrain和RegionGrain。
对于问题 1)将 Region 作为谷物实施是不是一个好主意?一些不同的示例支持此实现。但是,最佳实践手册表明这不是一个好主意,因为它是一项长期运行的工作(区域无限期持续存在),并且这种类型的颗粒可能是一个瓶颈。但是......我需要它像“Presence”样本中的“GameGrain”一样,玩家加入和离开(明确或超时)。
对于问题 2)
- 我有一个作为控制台应用程序实现的筒仓。我使用 amazon elastic beanstalk 部署了一个 .net web 应用程序,但我不知道从哪里开始使用控制台应用程序。亚马逊是一个不错的选择吗?我只是从最近的使用中默认它。
- 如果 RegionGrain 是一个坏主意……一个好主意会是什么样子?
- 如果 RegionGrain 是个好主意……有没有办法告诉奥尔良永远不要停用它?如果是这样,我应该使用 Timers 来满足超时要求,以及更新的存在和心跳......对吗?如果不是,我是否应该在某个维护和运行 RegionGrain(s) 的地方托管另一个控制台应用程序?