我一直在努力解决问题,并且决定在这里寻求帮助。
方案: 在在线游戏中,用户具有“货币”,一些用户获得该货币的奖励,应该在动态配额的24小时内每天每天给予奖励。在一天结束时,应该给用户配额。 最大配额是一天中的分钟数。货币不允许每分钟增加一个以上。用户当前拥有的货币保存在数据库中,将显示在页面上的排名上实际上按此货币排序的排名
用户A的配额为100,因此他应该每天分配100份货币,这是一天内分配配额的基本想法
每分钟都有一个cronjob运行,我模拟了这个并让它在这里工作:
$minutesSinceMidnight = 0;
$dailyQuota = 100;
$result = 0;
do {
if(!($minutesSinceMidnight % floor(1440 / $dailyQuota)))
{
$result += 1;
echo "Minutes since Midnight ".$minutesSinceMidnight. " result ". $result."\n";
}
$minutesSinceMidnight += 1;
}
while($minutesSinceMidnight != 1440);
echo "We got ". $result;
问题是这是非常不准确的,你有什么建议如何更好地解决这个问题?