From 1b5d409c0c7d9c07b318784a252350cac710b85a Mon Sep 17 00:00:00 2001 From: r888888888 Date: Sat, 6 May 2017 20:54:34 -0700 Subject: [PATCH] remove usage of postgres now() in token bucket check --- app/models/token_bucket.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/models/token_bucket.rb b/app/models/token_bucket.rb index ca2f93c31..78e611d59 100644 --- a/app/models/token_bucket.rb +++ b/app/models/token_bucket.rb @@ -15,10 +15,11 @@ class TokenBucket < ActiveRecord::Base end def add! - TokenBucket.where(user_id: user_id).update_all(["token_count = least(token_count + (? * extract(epoch from now() - last_touched_at)), ?), last_touched_at = now()", user.api_regen_multiplier, user.api_burst_limit]) + now = Time.now + TokenBucket.where(user_id: user_id).update_all(["token_count = least(token_count + (? * extract(epoch from ? - last_touched_at)), ?), last_touched_at = ?", user.api_regen_multiplier, now, user.api_burst_limit, now]) # estimate the token count to avoid reloading - self.token_count += user.api_regen_multiplier * (Time.now - last_touched_at) + self.token_count += user.api_regen_multiplier * (now - last_touched_at) self.token_count = user.api_burst_limit if token_count > user.api_burst_limit end