消息队列 Beanstalkd 源码解析(一)
来源:互联网 发布:jq signature.js下载 编辑:程序博客网 时间:2024/05/17 08:21
初稿,还在继续学习源码中…
代码目录结构
.├── Contributing├── LICENSE├── Makefile├── README├── adm ( 做成系统服务相关配置 )├── ct (测试用例代码)├── doc (文档)├── pkg (文档)
重要代码
- tube
- heap
- job
用两个数据结构描述job。(1)jobrec,job的描述信息,元数据;(2)job,job内容的实际存储
struct job { Jobrec r; // persistent fields; these get written to the wal //描述job的属性,持久化时这些数据会写到文件中。 /* bookeeping fields; these are in-memory only */ char pad[6]; tube tube; // 指针,指向一个tube job prev, next; /* linked list of jobs */ job ht_next; /* Next job in a hash table list */ size_t heap_index; /* where is this job in its current heap */ File *file; job fnext; job fprev; void *reserver; int walresv; int walused; char body[]; // written separately to the wal};
- ms
自定义的集合类型,在此项目中用来管理连接、tube。 - all_jobs_init
哈希表,存储job,按照job id取模来进行哈希。该哈希表用于快速查找job。
job状态迁移
put with delay release with delay ----------------> [DELAYED] <------------. | | | (time passes) | | | put v reserve | delete -----------------> [READY] ---------> [RESERVED] --------> *poof* ^ ^ | | | \ release | | | `-------------' | | | | kick | | | | bury | [BURIED] <---------------' | | delete `--------> *poof*
参考文档
- http://blog.csdn.net/sunnycoco05/article/details/52104617
- http://kr.github.io/beanstalkd/
- http://in355hz.iteye.com/blog/1395727
- http://www.bytedancer.net/archives/21
- http://www.fzb.me/2015-3-21-beanstalkd-protocol-chinese-version.html
0 0
- 消息队列 Beanstalkd 源码解析(一)
- beanstalkd消息队列
- 消息队列-beanstalkd
- php消息队列beanstalkd使用
- Beanstalkd+Supervisor构建消息队列
- beanstalkd消息队列的使用【转】
- 消息队列-Beanstalkd IronMQ 、以及Amazon SQS 深入详细比较(作者:Bashkim Isai)
- Handler消息机制源码解析(一)
- Android消息队列源码解析(Handler、Looper、Message、MessageQueue)
- beanstalkd消息队列在生产环境的应用
- beanstalkd消息队列在生产环境的应用
- beanstalkd消息队列在生产环境的应用
- 消息队列:比较Beanstalkd,IronMQ和Amazon SQS
- beanstalkd消息队列在生产环境的应用
- 消息队列(一)
- Android消息机制源码解析(四)——消息队列MessageQueue
- android异步消息机制,源码层面彻底解析(一)
- Android源码解析之消息机制系列(一)Message
- POJ1287 最小生成树 水题 ZOJ1372
- POJ1308 并查集 想想也是醉的 自己水平不够啊
- 【PHP】——留言本输入与读取功能的实现
- POJ1312 棋盘问题 BFS
- 安信可 ESP8266机智云开发板:编译与烧录
- 消息队列 Beanstalkd 源码解析(一)
- Java String 详解
- 【转载】[JS]让表单提交返回后保持在原来提交的位置上
- POJ1363 栈 的简单应用
- POJ1543 水题 暴力枚举
- 多态、抽象类、接口
- POJ1611 并查集 基础 比 2524 复杂一些
- HDU2064
- 二分图中对最小顶点覆盖、最小边覆盖、最大独立集的理解