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

猜你喜欢

转载自www.cnblogs.com/25-lH/p/9035699.html