「Beanstalkd」- 作业的生命周期

  CREATED BY JENKINSBOT

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」文件