Postgresql计数命中重叠

时间:2017-01-22 14:20:27

标签: php postgresql

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

...
// $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个查询同时运行并且在'如果'重叠。如何防止这种情况,我需要确保仅在100(在此示例中)重定向停止

1 个答案:

答案 0 :(得分:0)

https://github.com/thatsus/laravel-redlock。重新锁定/解锁进程并防止重叠。