加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

node事件及解决雪崩问题

发布时间:2020-12-15 00:17:34 所属栏目:C语言 来源:网络整理
导读:node的events模块只提供了一个EventEmitter对象,它代理的全部的事件注册、监听、删除、触发的方法。 var events = new require('events')var event = new events.EventEmitter()event.on('connect',function(cd) { console.log(cd)})event.emit('connect')

node的events模块只提供了一个EventEmitter对象,它代理的全部的事件注册、监听、删除、触发的方法。

var events = new require('events')
var event = new events.EventEmitter()
event.on('connect',function(cd) {
    console.log(cd)
})
event.emit('connect')

所谓雪崩问题就是在高访问量,大并发的情况下,缓存失效,大量的查询请求涌入数据库,如果访问量巨大,同一条sql会被反复查询,造成查询缓慢,进而影响整个网站的响应速度。
我们可以通过evnet的once事件来解决雪崩问题

var events = new require('events')
var event = new events.EventEmitter()
var ready = 'ready'
async function select(callback) {
    event.once('select',callback)
    if (ready === 'ready'){
        ready = 'pending'
        var result = await db.select(SQL)
        event.emit('select',result)
        ready = 'ready'
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读