0

我的应用程序有VIEW另一个表,其中显示了上一个日历周所有记录的高分的列表。每周,我想在该列表前 X 的每个用户的行中增加一个值,以表明他们在过去的几周内一直在前 X 中。由于我只使用日期过滤器并且每周都不会触发某种服务器端“事件”,因此我不确定每周注册此信息的最有效方法。

我能想到的一种方法是在每次用户登录时简单地运行某种“检查”,并且每个日历周第一个登录的用户肩负着告诉服务器增加最后 X 名用户的负担星期。虽然这对我来说似乎有点做作,但我很乐意在获得足够的 Internet 批准的情况下这样做。

我使用的主要语言是 MySQL 和 PHP,以防万一。

4

2 回答 2

1

您应该考虑运行 cron 作业。您可以在每次用户登录时运行检查,但这确实不理想,尤其是在您的系统要扩大规模的情况下。

于 2013-03-05T01:37:34.397 回答
1

您可以编写一个更新脚本 1) 检查上次运行的时间,如果是本周,则中止。2) 更新上次运行的时间戳。3) 处理前一周。现在您可以使用您的操作系统来安排这个脚本(或者通过使用 php 运行它,或者通过使用例如 wget 来“下载”页面)。例如,在 linux 上,您通常会使用 cron,而在 windows 上使用任务调度程序。这比使用第一个用户要好得多,因为这可能导致难以确保处理不能运行两次(并行)的竞争条件。

于 2013-03-05T01:37:40.770 回答