Beanstalkd消息/任务队列
本篇笔记记录了Beanstalkd的基本概念,job的五种状态,以及Beanstalkd的特性
相关笔记:
CentOS编译和yum安装Beanstalkd及service和systemctl管理
Beanstalkd是什么
Beanstalkd是一个高性能、轻量级的分布式内存队列系统
基本概念
名称 | 含义 |
---|---|
job | 需要异步处理的任务(或消息),是Beanstalkd中的基本单元 |
tube | 管道(或消息队列),用来存储同一类型的job,是producer和consumer操作的对象 |
producer | job的生产者,通过put命令来将一个job放到一个tube中 |
consumer | job的消费者,通过reserve/release/bury/delete命令来获取job或改变job的状态 |
job状态
名称 | 含义 |
---|---|
delayed | 延迟状态 |
ready | 待消费者读取状态 |
reserved | 消费者处理中状态 |
buried | 预留状态 |
delete | 处理完成删除状态 |
特性
名称 | 含义 |
---|---|
priority | 优先级:支持0到2^32的优先级,值越小,优先级越高,默认优先级为1024 |
delay | 延迟:延迟消费,用来实现定时任务 |
持久 | 通过binlog将job及其状态记录到文件里面,在Beanstalkd重启或挂掉后,通过读取binlog来恢复之前的job及状态 |
TTR | 超时控制:put一个job时,可以设置超时时间,如果consumer不能在TTR时间内处理完成,job将会被置为ready状态,供其他consumer继续执行, |