0.0.64 • Published 9 months ago
@w5/redistream v0.0.64
@w5/redistream
redis stream 用法
- 创建流和消费组
stream_name = 'img'
group_name = 'get'
# 0 表示从头开始读取
await redis.xgroup('create', stream_name, group_name, 0, 'MKSTREAM')
- 每个消费者批量认领任务(redis 会确保一个消费者只认领一个任务)
> os > hostname
BLOCK_TIMEOUT = 10 * 60 * 1000 # 10分钟超时
consumer = hostname()
for [_, li] from ( # _ 是 stream name
await redis.xreadgroup(
'GROUP', group_name
consumer
'COUNT', limit,
'BLOCK', block_timeout
'STREAMS',stream_name
'>'
) or []
)
for [id, msg] from li
try
await func(id,msg)
finnaly
await redis.xdel stream_name, id
- 处理长期未 ACK 的 pending(被 xdel 的也会在这个阶段删除)
loop
[
_
li
] = await redis.xautoclaim(stream_name, GROUP_NAME, consumer, 1000, '0-0')
if not li.length
break
for [id, msg] from li
try
await func(id,msg)
finnaly
await redis.xdel stream_name, id
- 每天清理长期未工作的消费者
for [_,name,_,pending,_,idle] from await redis.xinfo('CONSUMERS', stream_name, GROUP_NAME)
if pending == 0 and idle > 86400000
await redis.xgroup('DELCONSUMER',stream_name,GROUP_NAME,name)
#!/usr/bin/env coffee
output :
./out.txt
0.0.62
9 months ago
0.0.63
9 months ago
0.0.64
9 months ago
0.0.60
9 months ago
0.0.61
9 months ago
0.0.59
9 months ago
0.0.51
10 months ago
0.0.52
9 months ago
0.0.53
9 months ago
0.0.54
9 months ago
0.0.55
9 months ago
0.0.56
9 months ago
0.0.57
9 months ago
0.0.58
9 months ago
0.0.50
10 months ago
0.0.40
1 year ago
0.0.41
1 year ago
0.0.42
1 year ago
0.0.43
1 year ago
0.0.44
12 months ago
0.0.45
12 months ago
0.0.46
12 months ago
0.0.47
12 months ago
0.0.37
1 year ago
0.0.38
1 year ago
0.0.39
1 year ago
0.0.30
1 year ago
0.0.32
1 year ago
0.0.33
1 year ago
0.0.36
1 year ago
0.0.48
12 months ago
0.0.49
11 months ago
0.0.29
1 year ago
0.0.28
1 year ago
0.0.27
1 year ago
0.0.26
1 year ago
0.0.25
1 year ago
0.0.23
1 year ago
0.0.22
1 year ago
0.0.21
1 year ago
0.0.20
1 year ago
0.0.19
1 year ago
0.0.18
1 year ago
0.0.17
1 year ago
0.0.15
1 year ago
0.0.14
1 year ago
0.0.13
1 year ago
0.0.12
1 year ago
0.0.11
1 year ago
0.0.10
1 year ago
0.0.9
1 year ago
0.0.8
1 year ago
0.0.7
1 year ago
0.0.5
1 year ago
0.0.4
1 year ago
0.0.3
1 year ago
0.0.2
1 year ago
0.0.1
1 year ago