PostgreSQL 计数点击重叠

问题描述 投票:0回答:1

我有计算链接上唯一点击次数的代码。所有计数在停止流量并重定向到另一个链接之前都有最大点击次数。

...
// $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 处重定向停止(在本例中)

php postgresql
1个回答
0
投票

https://github.com/thatsus/laravel-redlock 实现这一点。 Redlock 锁定/解锁过程并防止重叠。

© www.soinside.com 2019 - 2024. All rights reserved.