blob: ba7037dfe8f66535715560b48715f461f68efe0c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
*****************
Response Timeouts
*****************
CherryPy responses include 3 attributes related to time:
* ``response.time``: the :func:`time.time` at which the response began
* ``response.timeout``: the number of seconds to allow responses to run
(default 300 seconds)
* ``response.timed_out``: a boolean indicating whether the response has
timed out (default False).
The request processing logic inspects the value of ``response.timed_out`` at
various stages; if it is ever True, then :class:`TimeoutError` is raised.
You are free to do the same within your own code.
Rather than calculate the difference by hand, you can call
``response.check_timeout`` to set ``timed_out`` for you.
.. _timeoutmonitor:
Timeout Monitor
===============
In addition, CherryPy includes a ``cherrypy.engine.timeout_monitor`` which
monitors all active requests in a separate thread; periodically, it calls
``check_timeout`` on them all. It is subscribed by default. To turn it off::
[global]
engine.timeout_monitor.on: False
or::
cherrypy.engine.timeout_monitor.unsubscribe()
You can also change the interval (in seconds) at which the timeout monitor runs::
[global]
engine.timeout_monitor.frequency: 60 * 60
The default is once per minute. The above example changes that to once per hour.
|