0

我正在编写扑克变体游戏,需要 ruby​​ 或 rails 来运行一个大循环以保持游戏自动化。IE:

  • 每 10 秒左右检查一次,确保游戏中有足够的玩家;
  • 当有牌时,发牌,然后倒计时约 45 秒,然后摊牌;
  • 在我的扑克变体中,有 3 次连续摊牌 - 因此每次摊牌需要缓慢进行,以便玩家知道发生了什么:即 5 秒显示第一部分手牌并宣布该摊牌的赢家,5 秒第二第三个 5 秒
  • 手后停顿几秒
  • 再次从顶部开始循环

我已经快速浏览了delayed_job 和resque,但是对于我正在尝试做的事情来说,它们看起来相当复杂。我还考虑过使用 javascript/jquery 循环将服务器推送到循环中,但这似乎不太优雅,因为桌子上可能有众多玩家中的每一个都将寻求推动循环,而不是服务器这样做集中。

我是否错过了一个相当简单的功能,还是该深入研究一下delayed_job?

4

1 回答 1

0

您几乎需要某种守护进程,但不一定需要任何库。

您可以将代码编写为某个模块上的方法,并使用rails runner. 该方法可以执行包含sleep <seconds>执行代码和等待的循环。停止进程的简单方法是让它监视 /tmp 中是否存在文件或其他内容,但您也可以执行诸如编写 pid 文件之类的操作,然后稍后使用其 pid 终止该进程。

于 2012-07-31T06:04:16.913 回答