-
Notifications
You must be signed in to change notification settings - Fork 61
Expand file tree
/
Copy pathconnection-handling.xml
More file actions
96 lines (94 loc) · 4.28 KB
/
Copy pathconnection-handling.xml
File metadata and controls
96 lines (94 loc) · 4.28 KB
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: dc0f955be2a10b707ae06f7da69f52fab24df3d1 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="features.connection-handling" xmlns="http://docbook.org/ns/docbook">
<title>Gestión de las conexiones</title>
<para>
El estado de las conexiones se conserva internamente por PHP. Hay
cuatro estados posibles:
<itemizedlist>
<listitem><simpara>0 - NORMAL (normal)</simpara></listitem>
<listitem><simpara>1 - ABORTED (anulado)</simpara></listitem>
<listitem><simpara>2 - TIMEOUT (caducado)</simpara></listitem>
<listitem><simpara>3 - ABORTED and TIMEOUT (anulado y caducado)</simpara></listitem>
</itemizedlist>
</para>
<simpara>
Cuando un script PHP está en ejecución, el estado es NORMAL.
Si el cliente remoto se desconecta, el estado se convierte en ABORTED.
Una desconexión del cliente remoto generalmente es causada por los usuarios
presionando su botón STOP. Si se supera el tiempo máximo de ejecución de PHP, (ver <function>set_time_limit</function>), el script adopta el estado TIMEOUT.
</simpara>
<simpara>
Asimismo, se puede decidir si se desea que la
desconexión de un cliente provoque la interrupción del
script. A veces es práctico que los scripts continúen
ejecutándose hasta el final, incluso si el cliente ya no está
presente para recibir la información. Sin embargo, por omisión, el script
se detendrá tan pronto como el cliente se desconecte.
Este comportamiento puede ser modificado con la directiva
<option>ignore_user_abort</option> en el fichero &php.ini; o
bien con la directiva Apache <literal>php_value ignore_user_abort</literal>
del fichero Apache &httpd.conf; o con la función
<function>ignore_user_abort</function>. Si no se solicita a PHP que ignore la desconexión, y el
usuario se desconecta, el script será terminado. La
única excepción es si se ha registrado una función de cierre, con <function>register_shutdown_function</function>.
Con tal función, cuando el usuario interrumpe su
solicitud, en la próxima ejecución del script,
PHP se dará cuenta de que el último script no ha sido
terminado, y desencadenará la función de cierre.
Esta función también será llamada al final del script,
si este termina normalmente. Para poder tener un comportamiento
diferente según el estado del script al finalizar,
se pueden ejecutar comandos específicos a
la desconexión gracias a la función
<function>connection_aborted</function>. Esta función devolverá
&true; si la conexión ha sido anulada.
</simpara>
<simpara>
El script también puede ser interrumpido automáticamente
después de un cierto tiempo.
Por omisión, el tiempo límite es de 30 segundos. Este valor
puede ser cambiado utilizando la directiva PHP
<option>max_execution_time</option> en el fichero
&php.ini; o con la directiva
<literal>php_value max_execution_time</literal>, en el fichero
Apache &httpd.conf; o también con la función
<function>set_time_limit</function>.
Cuando el tiempo límite expira, el script es terminado,
y como en la desconexión del cliente, una función de
terminación será llamada. En esta función, se puede saber si es el tiempo límite el que ha
causado el fin del script, llamando a la función
<function>connection_status</function>. Esta función
devolverá <literal>2</literal> si el tiempo límite ha
sido superado.
</simpara>
<simpara>
Una cosa a tener en cuenta es que los dos casos ABORTED y TIMEOUT
pueden ser llamados al mismo tiempo. Esto es
posible si se solicita a PHP que ignore las
desconexiones de los usuarios. PHP aún así notará el hecho de que el usuario se ha desconectado,
pero el script continuará. Luego, cuando alcance el límite de
tiempo, el script caducará. En ese momento, la
función <function>connection_status</function>
devolverá <literal>3</literal>.
</simpara>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->