beanstalkd

概念


  • job
    一个需要异步处理的任务,是Beanstalkd中的基本单元,需要放在一个tube中。有READY, RESERVED, DELAYED, BURIED四种状态
  • tube
    一个有名的任务队列,用来存储统一类型的job,是producer和consumer操作的对象。
  • producer
    Job的生产者,通过put命令来将一个job放到一个tube中。当producer直接put一个job时,job就处于READY状态,等待consumer来处理,如果选择延迟put,job就先到DELAYED状态,等待时间过后才迁移到READY状态。
  • consumer
    Job的消费者,通过reserve/release/bury/delete命令来获取job或改变job的状态。consumer获取了当前READY的job后,该job的状态就迁移到RESERVED,这样其他的consumer就不能再操作该job。当consumer完成该job后,可以选择delete, release或者bury操作;delete之后,job从系统消亡,之后不能再获取;release操作可以重新把该job状态迁移回READY(也可以延迟该状态迁移操作),使其他的consumer可以继续获取和执行该job;有意思的是bury操作,可以把该job休眠,等到需要的时候,再将休眠的job kick回READY状态,也可以delete BURIED状态的job。

基本操作


 put with delay               release with delay
 ----------------> [DELAYED] <------------.
                       |                   |
                       | (time passes)     |
                       |                   |
  put                  v     reserve       |       delete
 -----------------> [READY] ---------> [RESERVED] --------> *poof*
                      ^  ^                |  |
                      |   \  release      |  |
                      |    ``-------------'   |
                      |                      |
                      | kick                 |
                      |                      |
                      |       bury           |
                   [BURIED] <---------------'
                      |
                      |  delete
                       ``--------> *poof*

将继续补充... ...

参考链接

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 总括 beanstalkd协议基于ASCII编码运行在tcp上。客户端连接服务器并发送指令和数据,然后等待响应并关...
    零一间阅读 1,251评论 0 1
  • 消息队列选型更多考虑业务的场景 性能,比如每秒有多少消息啊,如果你每秒有几万的消息量,那 Beanstalk、Ra...
    零一间阅读 2,067评论 0 2
  • 介绍: Beanstalkd,一个高性能、轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务...
    零一间阅读 9,835评论 0 9
  • Branstalkd官方网站 Branstalkd简介 Beanstalkd,一个高性能、轻量级的分布式内存队列系...
    qlaiaqu阅读 1,036评论 0 0
  • 一. 应用场景 在web后端服务的交互中很多场景上游和下游处理的时间不匹配,比如上游处理的快,下游处理的慢。这时候...
    skywalker阅读 13,258评论 1 23