前言
前几天在朋友圈看到一个俄罗斯工程师为了给他老婆实时报到情况写了一个自动化脚本,通过定时任务来触发。比如晚上9点了,他的服务器上还有正在运行的SSH进程,就给他老婆发一条短信,“今晚加班晚点回家”,多么温馨的故事啊。碰巧我正在学习swoole扩展,特此记录一下。
定时器
一般的定时器是怎么实现的呢?我总结如下:
1.使用Crontab工具,写一个shell脚本,在脚本中调用PHP文件,然后定期执行该脚本;
2.ignore_user_abort()和set_time_limit()配合使用;
3.pcntl_alarm;
4.swoole异步毫秒定时器
swoole异步毫秒定时器
Timer定时器
swoole内置定时器,通过函数addtimer即可在server中添加一个定时器,参数单位为毫秒,该定时器会在建立之后,按照预先设定好的时间间隔,每到对应的时间就会调用一次回调函数onTimer。看代码:
执行过程:
swoole_timer_add定时器
swoole_timer_add($interval,$callback)
$interval:时间间隔,单位毫秒,不能同时存在同样时间