|
|
|
|
|
|
|
|
local last_value = tonumber(redis.call('HGET', KEYS[1], 'v' .. '{= w.name =}')) |
|
|
local last_value = tonumber(redis.call('HGET', KEYS[1], 'v' .. '{= w.name =}')) |
|
|
local window = {= w.time =} |
|
|
local window = {= w.time =} |
|
|
-- Adjust alpha |
|
|
-- Adjust alpha |
|
|
local time_diff = now - last_value |
|
|
|
|
|
if time_diff > 0 then |
|
|
|
|
|
|
|
|
local time_diff = now - last |
|
|
|
|
|
if time_diff < 0 then |
|
|
time_diff = 0 |
|
|
time_diff = 0 |
|
|
end |
|
|
end |
|
|
local alpha = 1.0 - math.exp((-time_diff) / (1000 * window)) |
|
|
local alpha = 1.0 - math.exp((-time_diff) / (1000 * window)) |