beanstalkd队列
数据结构里面的队列是先进先出的数据结构,在服务器开发中使用队列可以有效的实现任务的异步处理,把耗时的任务放在一个队列中,由消费者去自动处理,比如客户端用户把错题生成pdf文件下载,可以在客户端点击生成的时候把任务放入队列异步处理,然后直接先返回给用户结果,而不必让用户等待。 队列用处 异步处理:用户注册后查找数据库发送邮件推荐商品,把推荐商品放入队列。 系统解耦:上面的过程将用户注册和推荐商品分离开来了。 定时任务: 把考生的试卷提交信息提前放入队列,每天固定某个时间实现自动批改选择题。 beanstalkd工具 beanstalked 是一个简单的快速的通用的轻量级内存队列,可以实现百万级任务处理。 特性 优先级:可以设置任务的优先级 延迟: 设置任务多少秒后才允许被消费者使用 持久化:定时刷新数据到文件,服务器挂掉后数据依旧存在 超时会重发:消费者必须在指定时间内完成任务,否则就会重新放入管道 任务预留:消费者先暂时跳过任务不处理 任务和管道 任务的状态转换 ready:任务已经准备好了,可以给消费者使用。 delay:任务放入管道的时候设置了延迟时间。 reserve:消费者把任务读取出来 buried:任务先放在一边,以后还会用 delete:任务从队列删除 安装 地址: https://github.com/kr/beanstalkd 可以通过源代码安装或者包管理工具