码迷,mamicode.com
首页 > 其他好文 > 详细

redis消息通知

时间:2019-03-18 22:33:07      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:邮件   web应用   code   redis   lse   一段   使用   str   span   

1、任务队列

对于发送邮件或者是复杂计算这样的操作,常常需要比较长的时间,为了不影响web应用的正常使用,避免页面显示被阻塞,常常会将此类任务存入任务队列交由专门的进程去处理。

队列最基础的方法如下:

有新任务的时候,通过lpush推送任务到队列中
......
while(true){ if(队列有无新任务) 有,则rpop取出新任务 else 等待一段时间,避免频繁检查队列 }

对于上述的策略,redis有更有一些的方法,即使用BRPOP命令

有新任务的时候,通过lpush推送任务到队列中
......
while(true){
    BRPO取出新任务
    执行任务
}

如果队列中没有元素,则会阻塞列表直到等待超时或发现可弹出元素为止。假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。

brpop命令格式如:brpop 列表键名 等待时间

1)如果等待时间设置为0,则表示不限制等待时常。经测试,开启两个redis客户端连接,当客户端A被此命令阻塞时,另一个 客户端B王队列在推送任务,客户端A即刻取出该新任务。

2)如果设置了等待时间,则超时后会返回nil和等待时长。

redis消息通知

标签:邮件   web应用   code   redis   lse   一段   使用   str   span   

原文地址:https://www.cnblogs.com/wsfu/p/10555560.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!