diff options
author | Jesusaves <cpntb1@ymail.com> | 2024-02-05 11:17:23 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2024-02-05 11:17:23 -0300 |
commit | 29ffe5de3c308013742b5bd97f7d75b09bd3b427 (patch) | |
tree | 7199cecaf204701770de171d007e561589b19762 /discord_rpc/util/backoff.py | |
parent | f6b8c0c64757c73b6f2063d3a6d93ce2f8f527d5 (diff) | |
download | tkinter-29ffe5de3c308013742b5bd97f7d75b09bd3b427.tar.gz tkinter-29ffe5de3c308013742b5bd97f7d75b09bd3b427.tar.bz2 tkinter-29ffe5de3c308013742b5bd97f7d75b09bd3b427.tar.xz tkinter-29ffe5de3c308013742b5bd97f7d75b09bd3b427.zip |
Some button aligning, a CI template, and Discord RPC
Diffstat (limited to 'discord_rpc/util/backoff.py')
-rw-r--r-- | discord_rpc/util/backoff.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/discord_rpc/util/backoff.py b/discord_rpc/util/backoff.py new file mode 100644 index 0000000..650a871 --- /dev/null +++ b/discord_rpc/util/backoff.py @@ -0,0 +1,35 @@ +from __future__ import absolute_import +import random +from .types import Int32, Int64 + + +class Backoff(object): + _min_amt = None + _max_amt = None + _current = None + _fails = Int32() + + def __init__(self, min_amt, max_amt): + min_amt = max(min_amt, 1) + max_amt = max(max_amt, 1) + self._min_amt = Int64(min_amt) + self._max_amt = Int64(max_amt) + self._current = Int64(min_amt) + + def reset(self): + self._fails = Int32(0) + self._current = self._min_amt.get_copy() + + def next_delay(self): + self._fails += 1 + delay = Int64(self._current.get_number() * 2.0 * random.random()) + self._current = Int64(min(self._current.get_number() + delay.get_number(), self._max_amt)) + return self._current + + @property + def fails(self): + return self._fails + + @property + def current(self): + return self._current |