找到约 19 条结果 (用时约 0.033 秒)

Timer::tick

设置一个间隔时钟时器,与`after`时器不同的是`tick`时器会持续触发,直到调用`Timer::clear`清除。 ```php int Swoole\Timer::tick(int $msec, callable $callback, ...$params); ``` > 函数风格别名是`swoole_timer_tick` * `$msec` 指定时间,单位...

Server->tick

添加`tick`时器,可以自定义回调函数。此函数是 [Swoole\Timer::tick](/wiki/page/412.html) 的别名。 > `Worker`进程结束运行后,所有时器都会自动销毁 > `tick/after`时器不能在`Server->start`之前使用 在 onReceive 中使用 --------------...

设置时器

swoole提供了类似JavaScript的`setInterval`/`setTimeout`异步高精度时器,粒度为毫秒级。使用也非常简单。 程序代码 ----- ```php //每隔2000ms触发一次 swoole_timer_tick(2000, function ($timer_id) { echo "tick-2000ms\n"; }); //3000ms后执行此函...

Server->clearTimer

清除`tick/after`时器,此函数是 [swoole_timer_clear](/wiki/page/387.html) 的别名。 > `clearTimer`仅可用于清除当前进程的时器 使用示例 ---- ```php $timer_id = $server->tick(1000, function ($id) use ($server) { $server->clearTimer($id); }); ```

Event

...置的延迟执行函数 2. 通过`Timer::tick`和`Timer::after`设置的时器回调函数 3. 通过`Event::cycle`设置的周期回调函数 新版本 --- 在`2.1.2`或`1.10.3`版本中调整了`2`和`3`的顺序,优先执行时器。 1. 通过`Process::signal`设置的信号处...

Timer

毫秒精度的时器。底层基于`epoll_wait`和`setitimer`实现,数据结构使用`最小堆`,可支持添加大量时器。 * 在同步进程中使用`setitimer`和信号实现,如`Manager`和`TaskWorker`进程 * 在异步进程中使用`epoll_wait/kevent/poll/select`超时时...

Timer::clear

使用时器`ID`来删除时器。 ```php bool Swoole\Timer::clear(int $timer_id); ``` > 函数风格别名是`swoole_timer_clear` * `$timer_id`,时器`ID`,调用`Timer::tick`、`Timer::after`后会返回一个整数的`ID` * `Swoole\Timer::clear`不能用于清除其他进...

swoole_timer_add

增加时器,用于fpm/apache/cli环境下。 ```php swoole_timer_add($interval, $callback); swoole_timer_add(3000, function($interval) { echo "timer[$interval] :".date("H:i:s")." call\n"; }); ``` * $interval为时器间隔,单位是毫秒,不能存在同样时间间隔的...

1.7.19

... ----- * 增加swoole_atomic模块,支持原子整数操作 * 修复时器在系统休眠后无法恢复运行的BUG * 修复SSL服务器在慢速网络中发送超过30K大包失败的问题 * UDP/UDP6/UNIX_DGRAM协议支持64K大包 * 修复addtimer/tick时器在BASE模式下无法...

1.7.4 task进程中使用毫秒时器

...计之初就是仅仅支持同步阻塞模式的。 而swoole的毫秒时器是使用timerfd实现的异步时器。所以在1.7.4之前,task进程中是无法使用时器的。1.7.4专门对task进程进行了优化,实现了同步的信号触发式时器。 > swoole并不是...