APIMeter update the included value on each click
This change update the internal value on each time click, after this change the rate calculation will be done on the proxy at the price of continuesly query the server. It is yet to be determine if this is a problem, if so, it is possible to do and store those calculation on the server and just pull them on demend. Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This commit is contained in:
parent
d1f85080b4
commit
1cf0279644
@ -21,9 +21,25 @@ public class APIMeter extends Meter {
|
|||||||
url = _url;
|
url = _url;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public long get_value() {
|
||||||
public long count() {
|
|
||||||
return c.getLongValue(url);
|
return c.getLongValue(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Meter doesn't have a set value method.
|
||||||
|
// to mimic it, we clear the old value and set it to a new one.
|
||||||
|
// This is safe because the only this method would be used
|
||||||
|
// to update the values
|
||||||
|
public long set(long new_value) {
|
||||||
|
long res = super.count();
|
||||||
|
mark(-res);
|
||||||
|
mark(new_value);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void tick() {
|
||||||
|
set(get_value());
|
||||||
|
super.tick();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user