我有计算链接上唯一点击次数的代码。所有计数在停止流量并重定向到另一个链接之前都有最大点击次数。
...
// $link->max_clicks = 100; (example)
if (!empty($link->max_clicks)) {
$count_unique_clicks = DB::table('links_clicks')->distinct()->select('ip')->count('ip');
if ($count_unique_clicks >= $link->max_clicks) {
return redirect($link->url_backup);
}
} ...
问题是当我的大流量重定向停止在 101 或 102 时,因为 2-3 个查询同时运行并且命中“if”重叠。如何防止这种情况发生,我需要确保仅在 100 处重定向停止(在本例中)
https://github.com/thatsus/laravel-redlock 实现这一点。 Redlock 锁定/解锁过程并防止重叠。