请问大神们,频繁的添加和删除定时器 是否会对系统的稳定性和效率产生较大影响

wcnloveihic

我现在有一个项目,需要用户在不同状态下有不同的 $gateway->pingInterval的值.
但是我没有找到$gateway->pingInterval 这个值动态修改的方法.
所以只能通过定时器模拟,这时需要频繁的添加和删除定时器.
这种操作对系统稳定性和效率会不会产生较大影响?

2113 1 0
1个回答

caiqy

可以开一个每秒一次的计时器,使用时间轮来管理任务

  • keytehu 2019-11-22

    严重同意

  • wcnloveihic 2019-11-22

    能否写一个简易代码参考一下.您意思是每秒遍历一次用户表来判定用户是否超时掉线吗?

  • caiqy 2019-11-22

    https://www.jianshu.com/p/0f0fec47a0ad 需求不同实现程度不同,看看博客里的思路吧

  • wcnloveihic 2019-11-22

    workman 中 Timer 是使用时间轮这种算法吗?

  • caiqy 2019-11-22

    @6515:你不问我还真没去了解过,事件模型里用到了优先级队列,不是单纯的轮询,效率还是可以接受的。数量非常大的情况下,时间轮估计要好一些

  • wcnloveihic 2019-11-22

    好的 谢谢大神~~

年代过于久远,无法发表回答
🔝