美文网首页
beanstalkd

beanstalkd

作者: Zonas001 | 来源:发表于2018-03-02 13:09 被阅读0次

    概念


    • 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

          本文链接:https://www.haomeiwen.com/subject/szhaxftx.html