• Beanstalkd 基本概念和使用


    1:什么是 Beanstalkd ?

      Beanstalkd 一个高性能、轻量级的分布式内存队列系统 

      简单来说,就是一个队列,相比于 数据库/redis 队列相比。

      更专业。能完成的功能更多。就这么理解就好。

    3:Beanstalkd 的优势是什么?

    1. 优先级(priority)
    2. 延迟(delay)
    3. 持久化(persistent data)
    4. 预留(buried)
    5. 任务超时重发(time-to-run)

    4:Beanstalkd 基本概念和原理?

      在 Beanstalkd 中,需要明白两个很重要的概念。

      Tube(管道) Job(任务),如何理解这两个概念呢?

      我们知道队列的意思,就是像在排队一样,知道了这个概念,就可以明白他的作用了。

      比如在 北京站(Beanstalkd) 里面,有多个不同功能的窗口(Tube),我们在对应的 买票/退票/..窗口排队(job)

      管道的作用更像是区分多个任务(job)之间的隔离一样。

      形象的来说,就能更好理解 Beanstalkd 里面任务的状态了。

        1:ready  

          在 北京站(Beanstalkd) 里正常排队买票,我是已经随时准备好的状态。那么我的状态就是(ready);

          ready 即为准备完成,即可随时处理。

        2: delayed

          在 北京站(Beanstalkd) 里正常排队买票,突然发现我钱没带,叫我的同学,我同学说两个小时之后才能给我送过来。那么我的状态就是(delayed);

          delayed 即为延时处理,即是在指定时间过去之后才能被处理。

        3:reserved

          reserved 即为已读取的状态,意为正在处理。

          在 北京站(Beanstalkd) 里正常排队买票,排到你了。但是,排到你了,并不是说你就是可以正常的买到票,可能因为种种原因导致交易失败。

          如果交易失败(超出指定的处理时间),该订单(job)会回到(ready状态)。

        4:delete

          删除,没什么好说的,就是已经处理完了,从队列中删除了。

      可以参考下图:

        取自慕课网

        

          

    5:如何使用 Beanstalkd ?

      可以看一下我的 Github。

      封装了一部分 Beanstalkd 的常用方法。

      php-admin-beanstalkd

  • 相关阅读:
    Prosjecni——C++
    Mag——C++
    The Last Non-zero Digit
    atcoder 131 F
    Java基础50道经典练习题(11)——求不重复数字
    Java基础50道经典练习题(10)——自由落体
    Java基础50道经典练习题(9)——求完数
    Java基础50道经典练习题(8)——输入数字求和
    Java基础50道经典练习题(7)——处理字符串
    Java基础50道经典练习题(6)——求最大公约数和最小公倍数
  • 原文地址:https://www.cnblogs.com/25-lH/p/9035699.html
Copyright © 2020-2023  润新知