Python tenacity.wait_random() Examples
The following are 6
code examples of tenacity.wait_random().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
tenacity
, or try the search function
.
Example #1
Source File: locking.py From networking-generic-switch with Apache License 2.0 | 5 votes |
def __enter__(self): self.lock = False if not self.coordinator: return self LOG.debug("Trying to acquire lock for %s", self.locks_prefix) names = itertools.cycle(self.lock_names) retry_kwargs = {'wait': tenacity.wait_random(min=0, max=1), 'reraise': True} if self.timeout: retry_kwargs['stop'] = tenacity.stop_after_delay(self.timeout) @tenacity.retry(**retry_kwargs) def grab_lock_from_pool(): name = next(names) # NOTE(pas-ha) currently all tooz backends support locking API. # In case this changes, this should be wrapped to not respin # lock grabbing on NotImplemented exception. lock = self.coordinator.get_lock(name.encode()) locked = lock.acquire(blocking=False) if not locked: raise coordination.LockAcquireFailed( "Failed to acquire lock %s" % name) return lock try: self.lock = grab_lock_from_pool() except Exception: msg = ("Failed to acquire any of %s locks for %s " "for a netmiko action in %s seconds. " "Try increasing acquire_timeout." % ( self.locks_pool_size, self.locks_prefix, self.timeout)) LOG.error(msg, exc_info=True) raise return self
Example #2
Source File: test_tenacity.py From tenacity with Apache License 2.0 | 5 votes |
def test_random_sleep(self): r = Retrying(wait=tenacity.wait_random(min=1, max=20)) times = set() for x in six.moves.range(1000): times.add(r.wait(1, 6546)) # this is kind of non-deterministic... self.assertTrue(len(times) > 1) for t in times: self.assertTrue(t >= 1) self.assertTrue(t < 20)
Example #3
Source File: test_tenacity.py From tenacity with Apache License 2.0 | 5 votes |
def test_random_sleep_without_min(self): r = Retrying(wait=tenacity.wait_random(max=2)) times = set() times.add(r.wait(1, 6546)) times.add(r.wait(1, 6546)) times.add(r.wait(1, 6546)) times.add(r.wait(1, 6546)) # this is kind of non-deterministic... self.assertTrue(len(times) > 1) for t in times: self.assertTrue(t >= 0) self.assertTrue(t <= 2)
Example #4
Source File: test_tenacity.py From tenacity with Apache License 2.0 | 5 votes |
def test_wait_combine(self): r = Retrying(wait=tenacity.wait_combine(tenacity.wait_random(0, 3), tenacity.wait_fixed(5))) # Test it a few time since it's random for i in six.moves.range(1000): w = r.wait(1, 5) self.assertLess(w, 8) self.assertGreaterEqual(w, 5)
Example #5
Source File: test_tenacity.py From tenacity with Apache License 2.0 | 5 votes |
def test_wait_double_sum(self): r = Retrying(wait=tenacity.wait_random(0, 3) + tenacity.wait_fixed(5)) # Test it a few time since it's random for i in six.moves.range(1000): w = r.wait(1, 5) self.assertLess(w, 8) self.assertGreaterEqual(w, 5)
Example #6
Source File: test_tenacity.py From tenacity with Apache License 2.0 | 5 votes |
def test_wait_triple_sum(self): r = Retrying(wait=tenacity.wait_fixed(1) + tenacity.wait_random(0, 3) + tenacity.wait_fixed(5)) # Test it a few time since it's random for i in six.moves.range(1000): w = r.wait(1, 5) self.assertLess(w, 9) self.assertGreaterEqual(w, 6)