Python tornado.gen.TimeoutError() Examples
The following are 30
code examples of tornado.gen.TimeoutError().
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
tornado.gen
, or try the search function
.
Example #1
Source File: queues.py From opendevops with GNU General Public License v3.0 | 6 votes |
def put( self, item: _T, timeout: Union[float, datetime.timedelta] = None ) -> "Future[None]": """Put an item into the queue, perhaps waiting until there is room. Returns a Future, which raises `tornado.util.TimeoutError` after a timeout. ``timeout`` may be a number denoting a time (on the same scale as `tornado.ioloop.IOLoop.time`, normally `time.time`), or a `datetime.timedelta` object for a deadline relative to the current time. """ future = Future() # type: Future[None] try: self.put_nowait(item) except QueueFull: self._putters.append((item, future)) _set_timeout(future, timeout) else: future.set_result(None) return future
Example #2
Source File: locks_test.py From opendevops with GNU General Public License v3.0 | 6 votes |
def test_garbage_collection(self): # Test that timed-out waiters are occasionally cleaned from the queue. sem = locks.Semaphore(value=0) futures = [ asyncio.ensure_future(sem.acquire(timedelta(seconds=0.01))) for _ in range(101) ] future = asyncio.ensure_future(sem.acquire()) self.assertEqual(102, len(sem._waiters)) # Let first 101 waiters time out, triggering a collection. yield gen.sleep(0.02) self.assertEqual(1, len(sem._waiters)) # Final waiter is still active. self.assertFalse(future.done()) sem.release() self.assertTrue(future.done()) # Prevent "Future exception was never retrieved" messages. for future in futures: self.assertRaises(TimeoutError, future.result)
Example #3
Source File: queues_test.py From opendevops with GNU General Public License v3.0 | 6 votes |
def test_put_clears_timed_out_getters(self): q = queues.Queue() # type: queues.Queue[int] getters = [ asyncio.ensure_future(q.get(timedelta(seconds=0.01))) for _ in range(10) ] get = asyncio.ensure_future(q.get()) q.get() self.assertEqual(12, len(q._getters)) yield gen.sleep(0.02) self.assertEqual(12, len(q._getters)) self.assertFalse(get.done()) # Final waiters still active. q.put(0) # put() clears the waiters. self.assertEqual(1, len(q._getters)) self.assertEqual(0, (yield get)) for getter in getters: self.assertRaises(TimeoutError, getter.result)
Example #4
Source File: locks_test.py From tornado-zh with MIT License | 6 votes |
def test_garbage_collection(self): # Test that timed-out waiters are occasionally cleaned from the queue. sem = locks.Semaphore(value=0) futures = [sem.acquire(timedelta(seconds=0.01)) for _ in range(101)] future = sem.acquire() self.assertEqual(102, len(sem._waiters)) # Let first 101 waiters time out, triggering a collection. yield gen.sleep(0.02) self.assertEqual(1, len(sem._waiters)) # Final waiter is still active. self.assertFalse(future.done()) sem.release() self.assertTrue(future.done()) # Prevent "Future exception was never retrieved" messages. for future in futures: self.assertRaises(TimeoutError, future.result)
Example #5
Source File: queues.py From teleport with Apache License 2.0 | 6 votes |
def put(self, item, timeout=None): """Put an item into the queue, perhaps waiting until there is room. Returns a Future, which raises `tornado.util.TimeoutError` after a timeout. ``timeout`` may be a number denoting a time (on the same scale as `tornado.ioloop.IOLoop.time`, normally `time.time`), or a `datetime.timedelta` object for a deadline relative to the current time. """ future = Future() try: self.put_nowait(item) except QueueFull: self._putters.append((item, future)) _set_timeout(future, timeout) else: future.set_result(None) return future
Example #6
Source File: queues.py From teleport with Apache License 2.0 | 6 votes |
def get(self, timeout=None): """Remove and return an item from the queue. Returns a Future which resolves once an item is available, or raises `tornado.util.TimeoutError` after a timeout. ``timeout`` may be a number denoting a time (on the same scale as `tornado.ioloop.IOLoop.time`, normally `time.time`), or a `datetime.timedelta` object for a deadline relative to the current time. """ future = Future() try: future.set_result(self.get_nowait()) except QueueEmpty: self._getters.append(future) _set_timeout(future, timeout) return future
Example #7
Source File: locks_test.py From tornado-zh with MIT License | 6 votes |
def test_garbage_collection(self): # Test that timed-out waiters are occasionally cleaned from the queue. sem = locks.Semaphore(value=0) futures = [sem.acquire(timedelta(seconds=0.01)) for _ in range(101)] future = sem.acquire() self.assertEqual(102, len(sem._waiters)) # Let first 101 waiters time out, triggering a collection. yield gen.sleep(0.02) self.assertEqual(1, len(sem._waiters)) # Final waiter is still active. self.assertFalse(future.done()) sem.release() self.assertTrue(future.done()) # Prevent "Future exception was never retrieved" messages. for future in futures: self.assertRaises(TimeoutError, future.result)
Example #8
Source File: locks.py From teleport with Apache License 2.0 | 6 votes |
def wait(self, timeout=None): """Block until the internal flag is true. Returns a Future, which raises `tornado.util.TimeoutError` after a timeout. """ fut = Future() if self._value: fut.set_result(None) return fut self._waiters.add(fut) fut.add_done_callback(lambda fut: self._waiters.remove(fut)) if timeout is None: return fut else: timeout_fut = gen.with_timeout(timeout, fut, quiet_exceptions=(CancelledError,)) # This is a slightly clumsy workaround for the fact that # gen.with_timeout doesn't cancel its futures. Cancelling # fut will remove it from the waiters list. timeout_fut.add_done_callback(lambda tf: fut.cancel() if not fut.done() else None) return timeout_fut
Example #9
Source File: locks.py From teleport with Apache License 2.0 | 6 votes |
def acquire(self, timeout=None): """Decrement the counter. Returns a Future. Block if the counter is zero and wait for a `.release`. The Future raises `.TimeoutError` after the deadline. """ waiter = Future() if self._value > 0: self._value -= 1 waiter.set_result(_ReleasingContextManager(self)) else: self._waiters.append(waiter) if timeout: def on_timeout(): if not waiter.done(): waiter.set_exception(gen.TimeoutError()) self._garbage_collect() io_loop = ioloop.IOLoop.current() timeout_handle = io_loop.add_timeout(timeout, on_timeout) waiter.add_done_callback( lambda _: io_loop.remove_timeout(timeout_handle)) return waiter
Example #10
Source File: tcpclient_test.py From opendevops with GNU General Public License v3.0 | 5 votes |
def test_two_family_timeout_after_connect_timeout(self): conn, future = self.start_connect(self.addrinfo) self.assert_pending((AF1, "a")) conn.on_connect_timeout() self.connect_futures.pop((AF1, "a")) self.assertTrue(self.streams.pop("a").closed) self.assert_pending() conn.on_timeout() # if the future is set with TimeoutError, connector will not # trigger secondary address. self.assert_pending() self.assertEqual(len(conn.streams), 1) self.assert_connector_streams_closed(conn) self.assertRaises(TimeoutError, future.result)
Example #11
Source File: tcpclient_test.py From teleport with Apache License 2.0 | 5 votes |
def test_two_family_timeout_before_connect_timeout(self): conn, future = self.start_connect(self.addrinfo) self.assert_pending((AF1, 'a')) conn.on_timeout() self.assert_pending((AF1, 'a'), (AF2, 'c')) conn.on_connect_timeout() self.connect_futures.pop((AF1, 'a')) self.assertTrue(self.streams.pop('a').closed) self.connect_futures.pop((AF2, 'c')) self.assertTrue(self.streams.pop('c').closed) self.assert_pending() self.assertEqual(len(conn.streams), 2) self.assert_connector_streams_closed(conn) self.assertRaises(TimeoutError, future.result)
Example #12
Source File: tcpclient_test.py From teleport with Apache License 2.0 | 5 votes |
def test_one_family_second_try_after_connect_timeout(self): conn, future = self.start_connect([(AF1, 'a'), (AF1, 'b')]) self.assert_pending((AF1, 'a')) self.resolve_connect(AF1, 'a', False) self.assert_pending((AF1, 'b')) conn.on_connect_timeout() self.connect_futures.pop((AF1, 'b')) self.assertTrue(self.streams.pop('b').closed) self.assert_pending() self.assertEqual(len(conn.streams), 2) self.assert_connector_streams_closed(conn) self.assertRaises(TimeoutError, future.result)
Example #13
Source File: gen_test.py From teleport with Apache License 2.0 | 5 votes |
def test_timeout(self): with self.assertRaises(gen.TimeoutError): yield gen.with_timeout(datetime.timedelta(seconds=0.1), Future())
Example #14
Source File: locks.py From teleport with Apache License 2.0 | 5 votes |
def acquire(self, timeout=None): """Attempt to lock. Returns a Future. Returns a Future, which raises `tornado.util.TimeoutError` after a timeout. """ return self._block.acquire(timeout)
Example #15
Source File: tcpclient.py From teleport with Apache License 2.0 | 5 votes |
def on_connect_timeout(self): if not self.future.done(): self.future.set_exception(TimeoutError()) self.close_streams()
Example #16
Source File: gen_test.py From teleport with Apache License 2.0 | 5 votes |
def test_timeout_concurrent_future(self): # A concurrent future that does not resolve before the timeout. with futures.ThreadPoolExecutor(1) as executor: with self.assertRaises(gen.TimeoutError): yield gen.with_timeout(self.io_loop.time(), executor.submit(time.sleep, 0.1))
Example #17
Source File: queues_test.py From opendevops with GNU General Public License v3.0 | 5 votes |
def test_get_timeout(self): q = queues.Queue() # type: queues.Queue[int] get_timeout = q.get(timeout=timedelta(seconds=0.01)) get = q.get() with self.assertRaises(TimeoutError): yield get_timeout q.put_nowait(0) self.assertEqual(0, (yield get))
Example #18
Source File: locks_test.py From opendevops with GNU General Public License v3.0 | 5 votes |
def test_acquire_timeout_preempted(self): sem = locks.Semaphore(1) yield sem.acquire() # This fires before the wait times out. self.io_loop.call_later(0.01, sem.release) acquire = sem.acquire(timedelta(seconds=0.02)) yield gen.sleep(0.03) yield acquire # No TimeoutError.
Example #19
Source File: locks_test.py From opendevops with GNU General Public License v3.0 | 5 votes |
def test_event_timeout(self): e = locks.Event() with self.assertRaises(TimeoutError): yield e.wait(timedelta(seconds=0.01)) # After a timed-out waiter, normal operation works. self.io_loop.add_timeout(timedelta(seconds=0.01), e.set) yield e.wait(timedelta(seconds=1))
Example #20
Source File: locks_test.py From opendevops with GNU General Public License v3.0 | 5 votes |
def test_wait_timeout_preempted(self): c = locks.Condition() # This fires before the wait times out. self.io_loop.call_later(0.01, c.notify) wait = c.wait(timedelta(seconds=0.02)) yield gen.sleep(0.03) yield wait # No TimeoutError.
Example #21
Source File: tcpclient_test.py From opendevops with GNU General Public License v3.0 | 5 votes |
def test_two_family_timeout_before_connect_timeout(self): conn, future = self.start_connect(self.addrinfo) self.assert_pending((AF1, "a")) conn.on_timeout() self.assert_pending((AF1, "a"), (AF2, "c")) conn.on_connect_timeout() self.connect_futures.pop((AF1, "a")) self.assertTrue(self.streams.pop("a").closed) self.connect_futures.pop((AF2, "c")) self.assertTrue(self.streams.pop("c").closed) self.assert_pending() self.assertEqual(len(conn.streams), 2) self.assert_connector_streams_closed(conn) self.assertRaises(TimeoutError, future.result)
Example #22
Source File: tcpclient_test.py From opendevops with GNU General Public License v3.0 | 5 votes |
def test_one_family_second_try_after_connect_timeout(self): conn, future = self.start_connect([(AF1, "a"), (AF1, "b")]) self.assert_pending((AF1, "a")) self.resolve_connect(AF1, "a", False) self.assert_pending((AF1, "b")) conn.on_connect_timeout() self.connect_futures.pop((AF1, "b")) self.assertTrue(self.streams.pop("b").closed) self.assert_pending() self.assertEqual(len(conn.streams), 2) self.assert_connector_streams_closed(conn) self.assertRaises(TimeoutError, future.result)
Example #23
Source File: tcpclient_test.py From opendevops with GNU General Public License v3.0 | 5 votes |
def test_connect_timeout(self): timeout = 0.05 class TimeoutResolver(Resolver): def resolve(self, *args, **kwargs): return Future() # never completes with self.assertRaises(TimeoutError): yield TCPClient(resolver=TimeoutResolver()).connect( "1.2.3.4", 12345, timeout=timeout )
Example #24
Source File: queues.py From opendevops with GNU General Public License v3.0 | 5 votes |
def get(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[_T]: """Remove and return an item from the queue. Returns an awaitable which resolves once an item is available, or raises `tornado.util.TimeoutError` after a timeout. ``timeout`` may be a number denoting a time (on the same scale as `tornado.ioloop.IOLoop.time`, normally `time.time`), or a `datetime.timedelta` object for a deadline relative to the current time. .. note:: The ``timeout`` argument of this method differs from that of the standard library's `queue.Queue.get`. That method interprets numeric values as relative timeouts; this one interprets them as absolute deadlines and requires ``timedelta`` objects for relative timeouts (consistent with other timeouts in Tornado). """ future = Future() # type: Future[_T] try: future.set_result(self.get_nowait()) except QueueEmpty: self._getters.append(future) _set_timeout(future, timeout) return future
Example #25
Source File: queues.py From opendevops with GNU General Public License v3.0 | 5 votes |
def join(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[None]: """Block until all items in the queue are processed. Returns an awaitable, which raises `tornado.util.TimeoutError` after a timeout. """ return self._finished.wait(timeout)
Example #26
Source File: tcpclient.py From opendevops with GNU General Public License v3.0 | 5 votes |
def on_connect_timeout(self) -> None: if not self.future.done(): self.future.set_exception(TimeoutError()) self.close_streams()
Example #27
Source File: locks.py From opendevops with GNU General Public License v3.0 | 5 votes |
def acquire( self, timeout: Union[float, datetime.timedelta] = None ) -> Awaitable[_ReleasingContextManager]: """Decrement the counter. Returns an awaitable. Block if the counter is zero and wait for a `.release`. The awaitable raises `.TimeoutError` after the deadline. """ waiter = Future() # type: Future[_ReleasingContextManager] if self._value > 0: self._value -= 1 waiter.set_result(_ReleasingContextManager(self)) else: self._waiters.append(waiter) if timeout: def on_timeout() -> None: if not waiter.done(): waiter.set_exception(gen.TimeoutError()) self._garbage_collect() io_loop = ioloop.IOLoop.current() timeout_handle = io_loop.add_timeout(timeout, on_timeout) waiter.add_done_callback( lambda _: io_loop.remove_timeout(timeout_handle) ) return waiter
Example #28
Source File: locks.py From opendevops with GNU General Public License v3.0 | 5 votes |
def acquire( self, timeout: Union[float, datetime.timedelta] = None ) -> Awaitable[_ReleasingContextManager]: """Attempt to lock. Returns an awaitable. Returns an awaitable, which raises `tornado.util.TimeoutError` after a timeout. """ return self._block.acquire(timeout)
Example #29
Source File: gen_test.py From opendevops with GNU General Public License v3.0 | 5 votes |
def test_timeout_concurrent_future(self): # A concurrent future that does not resolve before the timeout. with futures.ThreadPoolExecutor(1) as executor: with self.assertRaises(gen.TimeoutError): yield gen.with_timeout( self.io_loop.time(), executor.submit(time.sleep, 0.1) )
Example #30
Source File: gen_test.py From opendevops with GNU General Public License v3.0 | 5 votes |
def test_timeout(self): with self.assertRaises(gen.TimeoutError): yield gen.with_timeout(datetime.timedelta(seconds=0.1), Future())