XuLaLa.Tech

首页客户端下载Windows 使用V2Ray 教程SSR 教程Clash 教程

beanstalkd队列

2025.04.09

Beanstalkd是一个高性能,轻量级的分布式内存服务。它的接口是通用的,旨在通过异步运行耗时的任务来减少大容量Web应用程序中页面视图的延迟。

启动时,beanstalkd打开一个套接字并侦听传入的连接。对于每个连接,它都会读取一系列命令来创建,保留,删除和以其他方式操纵要完成的工作单元“作业”。

运行参数

-b <dir>
binlog的目录,持久化数据,重启自动读取
-d
后台执行beanstalkd
-f <ms>
每<ms>毫秒最多调用一次fsync(2)。这将减少磁盘活动并以安全为代价提高速度。断电可能会导致最多丢失<ms>毫秒的历史记录
-F
从不调用fsync(2)
-h
帮助
-l <addr>
监听的地址, 默认0.0.0.0
-p <port>
监听的端口,默认11300
-s <bytes>
每个binlog文件的最大大小(以字节为单位)
-u <user>
运行的用户
-z <bytes>
作业的最大大小(以字节为单位)

JOB

Job是队列中一个基本单元,Job 可能有四个工作状态:ready、reserved、delayed、buried.

job 的生命周期

ready等待被取出并处理
reserved如果 job 被 worker 取出,将被此 worker 预订,worker 将执行此 job
delayed等待特定时间之后,状态再迁移为 ready 状态
buried等待唤醒,通常在 job 处理失败时进入该状态

job 可能的状态迁移


put with delay release with delay

----------------> [DELAYED] <------------.

| |

kick | (time passes) |

| |

put v reserve | delete

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

^ ^ | |

| \ release | |

| `-------------' |

| |

| kick |

| |

| bury |

[BURIED] <---------------'

|

| delete

`--------> *poof*

## 应用场景

![](https://www./wp-content/uploads/2019/12/beanstalkd.png)

© 2010-2022 XuLaLa 保留所有权利 本站由 WordPress 强力驱动
请求次数:69 次,加载用时:0.665 秒,内存占用:32.19 MB