0

我们想创造一个这样的网络游戏我认为,这种类型的游戏在网络服务器上有一个调度软件。例如:播放器点击创建资源和资源创建将需要20分钟左右的时间。(每个资源创建时间都会不同)。此消息将发送到 Web 服务器应用程序,但不会同时处理此消息,例如必须在 20 分钟后处理。获取消息后的 Web 服务器应用程序必须将顺序放入队列中。

我们有一些大问题:

1-作业必须由网络服务器应用程序完成,即使玩家退出游戏。我认为我们必须在 Web Server 上创建类似 Windows 服务的东西。我们能做到吗?或者,还有更好的方法?

2-第二个问题取决于问题1。因为我们会有很多工作(每个玩家可以在每个登录中创建20,30个工作,我们将有成千上万的用户),所以我们的调度系统必须按时工作。有可能,在同一秒内有 100、1000 个工作,如果应用程序不能在他身上完成工作 Second 将使用下一秒时间,下一秒工作将转移到下一秒等。我们该怎么做这个问题 ?

平台:.Net 3.5 在 Windows 2003 Web 服务器上

干杯

阿萨德野生动物园

敏捷教练、Scrum Master

4

4 回答 4

2

在 unix 上,用于cron安排脚本每分钟运行一次 - 然后脚本处理所有作业。

http://en.wikipedia.org/wiki/Cron

于 2010-05-23T22:12:04.240 回答
0

那么具体的答案将取决于您使用的技术/语言/平台。在java中,查看Quartz提供的调度服务来调度作业;并检查 JMS/MDB 以实现您在问题 2 中提到的异步事件处理。

于 2010-05-23T22:09:35.180 回答
0

我认为我的回答不完全适合您的问题,但它会解决您的问题。两点同时。

首先,为什么要自动执行这些事件?据我了解,当且仅当玩家在特定时间之前创建资源时,您才需要授予玩家对其资源的访问权限。

好吧,这是我的解决方案:在资源模型类中插入一个名为usable_since或类似名称的字段,当玩家创建他的资源时,只需将此字段的值设置为当前时间加上所需的等待时间。

通过这种方式,您解决了两个问题:

  1. 即使玩家下线并且该资源仍然可用
  2. 即使拥有一百万用户,您也不需要设置这么大的作业处理程序。

我希望它有所帮助。祝你在开发游戏时好运。让它变得有趣!

于 2010-05-23T22:24:40.217 回答
0

我有一个类似的问题,因为我也在开发一个依赖于服务器端调度的应用程序:Job-Scheduling in Play!框架。我使用Play Framework (Java),它就像一个魅力;除了我没有经验可以同时安排多少个作业而不会使服务器瘫痪。

于 2012-05-04T05:55:01.320 回答