
起首,在种种营业型体系中,每每须要服务器在背景扫描相干数据,触发响应的统计、关照等操纵。
比方关于一个项目治理体系,须要天天的特定时间内,统计每项使命的实行、到期状况、全部项目的进度等等,依据统计状况,做响应关照处置惩罚; (引荐进修: swoole视频教程)
如许一个场景,怎样编程完成?
用平常的编程体式格局,是没法完成自动触发与统计的。固然,简朴的思绪,是利于体系的cron job机制。但这类体式格局,关于设置及可靠性方面,须要比较多的工资操纵要素。
Swoole是一个运用c开发的php扩大,经由过程php就能够完成高性能web服务器,同时,还内置了定时器Timer、使命行列Task特征。如许,基于swoole,你能够在顺序层面掌握完成体式格局,削减对外部东西 - 自力的音讯行列服务器、定时使命治理东西等的依赖性。
swoole的壮大的地方就在与其历程模子的设想,既处理了异步问题,又处理了并行。
用法以下:
swoole_server_addtimer($serv, 10);
第二个参数是定时器的间隔时间,单元为秒。swoole定时器的最小颗粒是1秒。支撑多个定时器。注重不能存在2个雷同间隔时间的定时器。 增添定时器后须要写一个回调函数。
细致代码以下:
swoole_server_handler($serv, 'onTimer', my_OnTimer); function my_OnTimer($serv, $interval) { echo "Timer[$interval] is call\n"; }
Task模块,用来做一些异步的慢速使命,比方webim中发播送。相似node.js,假如有10万个衔接,要发播送时,那会轮回10万次,这时候顺序不能做任何事情,不能接收新的衔接,也不能收包发包。
而swoole差别,丢给task历程以后,你的reactor,worker照跑不误。使命完成后会异步地关照worker历程通知它此使命已完成。
以上就是swoole能设置多个定时器吗的细致内容,更多请关注ki4网别的相干文章!