Beanstalkd的梳理

Beanstalkd

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

特性

优先级、延迟、持久化、预留、任务超时重发

维护类

stats:当前的状态
listTubes:当前的管道
statsTube:查看管道详细信息
useTube:指定要使用的管道
statsJob:任务的详细信息
peek:通过id取任务

生产类

putInTube:封装的
put:没有封装的
useTube: 指定使用的管道

消费类

watch:设置监听的管道
ignore:去掉监听的管道
reserve:监听阻塞的管道
listTubesWatched:把监听的管道列出来
reserveFromTube:把watch和reserve的方法合并起来
release:重置任务,等下次执行
bury:封存一个任务,等条件允许了,再消费,buried
peekBuried:读取预留buried任务
kickJob:读取预留buried任务,变成ready ,
kick:可以输入数值,批量把小于这个值的变为buried--》ready
peekReady:读取ready状态的任务
peekDelay:读取delay的任务
pauseTube:管道设置延迟
resumeTube:取消管道延迟
touch:让任务重新计算TTL「给任务续命的」

job生命周期

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

github:

236 声望
12 粉丝
0 条评论
推荐阅读
js判断服务器资源存在不存在
不需要下载文件,就可以判断文件存在不存在 {代码...}

SmallForest1阅读 706

初学后端,如何做好表结构设计?
这篇文章介绍了设计数据库表结构应该考虑的4个方面,还有优雅设计的6个原则,举了一个例子分享了我的设计思路,为了提高性能我们也要从多方面考虑缓存问题。

王中阳Go4阅读 1.7k评论 2

封面图
一分钟搞明白!快速掌握 Go WebAssembly
最近因为各种奇怪的原因,更多的接触到了 WebAssembly。虽然之前很多博客也翻过写过各种文章,但总感觉欠些味道。于是今天梳理了一版,和大家一起展开学习。

煎鱼4阅读 2.2k

面试官:请说一下如何优化结构体的性能?
使用内存对齐机制优化结构体性能,妙啊!前言之前分享过2篇结构体文章:10秒改struct性能直接提升15%,产品姐姐都夸我好棒 和 Go语言空结构体这3种妙用,你知道吗? 得到了大家的好评。这篇继续分享进阶内容:结...

王中阳Go4阅读 3.8k评论 2

封面图
Laravel入门及实践,快速上手ThinkSNS+二次开发
【摘要】自从ThinkSNS+不使用ThinkPHP框架而使用Laravel框架之后,很多人都说技术门槛抬高了,其实你与TS+的距离仅仅只是学习一个新框架而已,所以,我们今天来说说Laravel的入门。

ThinkSNS1阅读 2.4k

我让chatGPT用PHP写一个MVC框架,不仅写出来,还能跑!
没想到写出来的框架确实挺简单的,但是又没觉得哪里不对,于是我尝试把这个框架放到服务器试试能不能跑起来,最后还真的可以跑起来,为了让大家能够看到这个框架的演示,我直接爬一个热搜,然后便于展示数据。

TANKING1阅读 1.7k

封面图
开发一个全网搜索引擎的大致流程
由于对搜索引擎技术很感兴趣,便开始尝试开发一个搜索引擎。在参考了网上有限的资料后,加上自己钻研,最终开发出了一个小型的全网搜索引擎,底部有项目地址和搜索测试图片。

会飞的鸟1阅读 5.7k评论 1

github:

236 声望
12 粉丝
宣传栏