问一下大家,签到超出前十名额外奖励积分的问题
//今天签到排名
$today_ranking = Sign::query()->where('sign_date', '=', $sign_date)->count();
if ($today_ranking < 10) {
//签到前十名增加额外的积分
$extra_point = rand(4, 6);
}
$today_ranking = (int)$today_ranking + 1;
dd($today_ranking);
如果同时很多人签到,如何避免超出十个人还奖励额外的积分?是不是要在数据库增加一个记录签到前十的字段?希望大家给一点思路,谢谢~
利用 redis 锁