<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.swoole.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'class.swoole-timer.php',
    1 => 'Swoole\\Timer',
    2 => 'La clase Swoole\\Timer',
  ),
  'up' => 
  array (
    0 => 'book.swoole.php',
    1 => 'Swoole',
  ),
  'prev' => 
  array (
    0 => 'swoole-table.valid.php',
    1 => 'Swoole\\Table::valid',
  ),
  'next' => 
  array (
    0 => 'swoole-timer.after.php',
    1 => 'Swoole\\Timer::after',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/swoole/swoole.timer.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/class.swoole-timer.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="class.swoole-timer" class="reference">
 <h1 class="title">La clase Swoole\Timer</h1>
 

 <div class="partintro"><p class="verinfo">(PECL swoole &gt;= 1.9.0)</p>


  <div class="section" id="swoole-timer.intro">
   <h2 class="title">Introducción</h2>
   <p class="simpara">
    Temporizador con precisión de milisegundos. La implementación subyacente se
    basa en epoll_wait y setitimer, con una estructura de datos de montículo
    mínimo que permite añadir un gran número de temporizadores.
   </p>
   <p class="simpara">
    En los procesos con E/S síncrona, como los procesos Manager y TaskWorker, se
    implementa mediante setitimer y señales.
   </p>
   <p class="simpara">
    En los procesos con E/S asíncrona, se implementa mediante el tiempo de
    espera de epoll_wait/kevent/poll/select.
   </p>
   <p class="para">
    El sistema subyacente no admite temporizadores con un retardo de
    <code class="literal">0</code>; los valores inferiores a <code class="literal">1</code>
    milisegundo emiten un <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> y la llamada falla.
    Esto difiere de lenguajes como Node.js.
    <span class="methodname"><a href="swoole-event.defer.php" class="methodname">Swoole\Event::defer()</a></span>
    puede utilizarse para obtener una funcionalidad similar.
    <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
Swoole\Event</span><span style="color: #007700">::</span><span style="color: #0000BB">defer</span><span style="color: #007700">(function () {
  echo </span><span style="color: #DD0000">"hola\n"</span><span style="color: #007700">;
});
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
    </div>

   </p>
   <p class="simpara">
    Corrección del temporizador: el tiempo de ejecución de la función de
    retrollamada no afecta al instante de la siguiente ejecución. Por ejemplo,
    para un temporizador tick de 10 ms creado en 0,002 s, la primera
    retrollamada se ejecuta en 0,012 s; si la función de retrollamada tarda
    5 ms, el siguiente disparo se produce igualmente en 0,022 s, y no en
    0,027 s.
   </p>
   <p class="simpara">
    En cambio, si la función de retrollamada tarda demasiado, hasta cubrir el
    instante de la siguiente ejecución, el sistema subyacente corrige el tiempo:
    descarta los disparos vencidos y vuelve a llamar a la función en el
    siguiente instante disponible. Por ejemplo, si la retrollamada ejecutada en
    0,012 s tarda 15 ms, lo que retrasa el temporizador previsto para 0,022 s,
    la retrollamada se dispara de nuevo en 0,032 s.
   </p>
   <p class="simpara">
    De forma predeterminada, cuando un temporizador se dispara se crea
    automáticamente una corrutina para ejecutar la función de retrollamada.
    Este comportamiento puede desactivarse con
    <span class="function"><a href="function.swoole-async-set.php" class="function">swoole_async_set()</a></span>.
   </p>
   <div class="warning"><strong class="warning">Advertencia</strong>
    <p class="simpara">
     Un temporizador solo funciona en el espacio del proceso actual.
    </p>
   </div>
   <div class="warning"><strong class="warning">Advertencia</strong>
    <p class="simpara">
     Los temporizadores son puramente asíncronos e incompatibles con las
     funciones de E/S síncrona.
    </p>
   </div>
   <div class="warning"><strong class="warning">Advertencia</strong>
    <p class="simpara">
     La ejecución de un temporizador puede presentar ligeras desviaciones de
     tiempo.
    </p>
   </div>
  </div>


  <div class="section" id="swoole-timer.synopsis">
   <h2 class="title">Sinopsis de la clase</h2>


   <div class="classsynopsis">
    <span class="ooclass"><strong class="classname"></strong></span>


    <div class="classsynopsisinfo">
     <span class="ooclass">
      <span class="modifier">class</span> <strong class="classname">Swoole\Timer</strong>
     </span>
     {</div>


    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Métodos */</div>
    <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="modifier">static</span> <span class="modifier">function</span> <span class="methodname"><a href="swoole-timer.after.php" class="methodname">after</a></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$ms</code></span>, <span class="methodparam"><span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span> <code class="parameter">$callback</code></span>, <span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">...$params</code></span>): <span class="type"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">static</span> <span class="modifier">function</span> <span class="methodname"><a href="swoole-timer.clear.php" class="methodname">clear</a></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$timer_id</code></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">static</span> <span class="modifier">function</span> <span class="methodname"><a href="swoole-timer.clearall.php" class="methodname">clearAll</a></span>(): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">static</span> <span class="modifier">function</span> <span class="methodname"><a href="swoole-timer.exists.php" class="methodname">exists</a></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$timer_id</code></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">static</span> <span class="modifier">function</span> <span class="methodname"><a href="swoole-timer.info.php" class="methodname">info</a></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$timer_id</code></span>): <span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">static</span> <span class="modifier">function</span> <span class="methodname"><a href="swoole-timer.list.php" class="methodname">list</a></span>(): <span class="type">Swoole\Timer\Iterator</span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">static</span> <span class="modifier">function</span> <span class="methodname"><a href="swoole-timer.set.php" class="methodname">set</a></span>(<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$settings</code></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">static</span> <span class="modifier">function</span> <span class="methodname"><a href="swoole-timer.stats.php" class="methodname">stats</a></span>(): <span class="type"><a href="language.types.array.php" class="type array">array</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">static</span> <span class="modifier">function</span> <span class="methodname"><a href="swoole-timer.tick.php" class="methodname">tick</a></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$ms</code></span>, <span class="methodparam"><span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span> <code class="parameter">$callback</code></span>, <span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">...$params</code></span>): <span class="type"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

   }</div>


  </div>

 </div>

 































































<h2>Tabla de contenidos</h2><ul class="chunklist chunklist_reference"><li><a href="swoole-timer.after.php">Swoole\Timer::after</a> — Ejecuta una funci&oacute;n despu&eacute;s de un tiempo determinado</li><li><a href="swoole-timer.clear.php">Swoole\Timer::clear</a> — Elimina un temporizador por su identificador</li><li><a href="swoole-timer.clearall.php">Swoole\Timer::clearAll</a> — Elimina todos los temporizadores del proceso actual.</li><li><a href="swoole-timer.exists.php">Swoole\Timer::exists</a> — Comprueba si un temporizador existe</li><li><a href="swoole-timer.info.php">Swoole\Timer::info</a> — Obtiene informaci&oacute;n sobre un temporizador.</li><li><a href="swoole-timer.list.php">Swoole\Timer::list</a> — Obtiene un iterador sobre los temporizadores del proceso actual</li><li><a href="swoole-timer.set.php">Swoole\Timer::set</a> — Define los par&aacute;metros relacionados con los temporizadores</li><li><a href="swoole-timer.stats.php">Swoole\Timer::stats</a> — Obtiene estad&iacute;sticas de los temporizadores.</li><li><a href="swoole-timer.tick.php">Swoole\Timer::tick</a> — Define un temporizador de intervalo repetitivo</li></ul>
</div>
<?php manual_footer($setup); ?>