「Beanstalkd」- 概念及术语

作业的生命周期

Producer:一个程序,负责向队列中添加任务;

Worker:一个程序,负责完成队列中的任务;

一个作业有四种状态:

  • “ready” – 进入队列的初时状态
  • “reserved” – 已经被Worker接收
  • “delayed” – 延迟执行
  • “buried” – 使用bury将作业设置成buried状态,处于该状态的作业不会再执行,直到使用kick命令将其剔除。

下面是一个简单的生命周期

put reserve delete

———> [READY] ————> [RESERVED] ———-> *poof*

(1)Producer使用put命令在Beanstalkd中创建任务,此时作业出于“ready”状态。

(2)作业会一直存在于队列中,并处于“ready”状态,等待Worker的出现;

(3)此时Worker出现,向Beanstalkd发送reserver命令

(4)Beanstalkd取出当前作业的信息,将信息返回给Worker,然后Beanstalkd将作业标记为“reserve”状态。

(5)Worker开始处理作业……

(6)当Worker将作业处理完成,向Beanstalkd发送delete命令,请求删除已经完成的作业。

(7)收到delete请求后,Beanstalkd将作业删除。

参考文献

参考「protocol.txt」文件