0

好的,我知道标题并没有真正告诉您我的问题是什么,但我现在就试试。我正在开发一个游戏。人们可以订阅他们的动物参加比赛。那场比赛在特定时间开始。这是一场所有用户都可以订阅的比赛。所以计算哪个动物是第一,第二等发生在一个执行的 php 文件中,每 2 分钟有一个新的计算大约 1 小时。所以有30个计算。但是ofc。此代码未连接到登录用户。登录的用户可以点击 LIVE 按钮查看当前结果。

示例:今天晚些时候 17:00 有一场比赛。4 名玩家订阅了 15 只动物,他们都可以检查他们的动物的表现。

我不希望有人向我发布完整的代码,但我想知道我应该如何让 php 代码在我的服务器上运行大约 1 小时(所以执行代码、睡眠 2 分钟、新计算、睡眠 2 分钟等等) . 所以它没有连接到用户。

我考虑过 cron 工作,但我相信这真的不是解决方案。感谢您阅读:p

4

2 回答 2

0

两种方法:

  1. 您使用的算法总是会得出相同的结论,而不管它何时运行以及由谁运行。您只需定义起始参数,然后您可以随时在需要时计算结果(或在开始和结束之间的任何时间点的中间结果)。因此,任何用户都可以随时访问您的网站,并且该算法将从某个固定的起始条件即时计算当前排名。
  2. 或者,您将所有数据保存在中央数据存储中,并以特定间隔实际更新数据;任何用户都可以随时请求当前排名,并且将使用数据存储中的最新数据。您仍然需要一种具有上述特征的算法,因为您可能明确地没有真正实时运行模拟。每隔 x 秒,你就会再次运行你的计算,计算你上次运行它们时应该发生的变化。

本质上,您使用的任何算法都需要这种方法。即使是“实时”程序也只是保持循环,从以前的状态一点一点地改变值。这些变化之间的间隔可以任意延长,直到有必要时你什么都不计算。同时,您只需将所需的所有数据存储在数据库中。

于 2012-10-16T09:08:39.890 回答
0

Cron 工作是我认为的正确方式。当您对算法不太擅长时,请检查一下:How To: PHP with Cron job也许您必须使用不同的 cron 作业。

于 2012-10-16T09:19:36.080 回答