lark-relay 0.4.9 → 0.4.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/lib/help.js +15 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -80,6 +80,12 @@ lark-relay take --app <app> --chats oc_xxx --render text
|
|
|
80
80
|
多消费者**共享 store、各持游标**,不做「处理完即删」-- 谁都不能替别人删。
|
|
81
81
|
盯同一 app 请用不同 `--name` 隔离游标。
|
|
82
82
|
|
|
83
|
+
**游标要自己收尾**:它是「关了会话、过阵子接着盯」的续接凭据,所以引擎**不会**
|
|
84
|
+
自动清理不活跃的游标 -- 自动清掉就等于下次重挂要么全量重放、要么跳过停机期的消息。
|
|
85
|
+
代价是不再用的游标会一直留在 `status` 里显示「落后 N 条」,而 store 只保留几天,
|
|
86
|
+
那个 N 会随过期删除而变小(**看着像追上了,其实是消息没了**)。
|
|
87
|
+
一次性监听、验完的排查、不再值守的任务,收尾时 `rm -rf ~/.lark-relay/cursors/<name>`。
|
|
88
|
+
|
|
83
89
|
## 设计取舍
|
|
84
90
|
|
|
85
91
|
- **原子落盘**:collect 读 stdout NDJSON 后自己 `写 .tmp -> rename`(同目录原子)。
|
package/lib/help.js
CHANGED
|
@@ -47,7 +47,13 @@ function takeHelp(apps) {
|
|
|
47
47
|
· 用 run_in_background 起,不要前台跑 -- 会阻塞会话最长 12h
|
|
48
48
|
· 一批处理完再起下一个;不需要自己写 while 循环
|
|
49
49
|
· 拿不到消息先查第二步:bot 不在群是最常见原因
|
|
50
|
-
· 多个消费者盯同一 app 用不同 --name
|
|
50
|
+
· 多个消费者盯同一 app 用不同 --name,游标互不干扰
|
|
51
|
+
· 不盯了就删游标:rm -rf ~/.lark-relay/cursors/<name>
|
|
52
|
+
游标是给「关了会话、过阵子接着盯」用的续接凭据,不是运行态缓存,
|
|
53
|
+
引擎不会自动清 -- 一次性的临时监听、验证完的排查、不再值守的任务,
|
|
54
|
+
收尾时自己删掉。留着只会在 status 里挂一行越积越多的「落后 N 条」,
|
|
55
|
+
而 store 只保留几天,那个 N 迟早会因为过期删除而变小 --
|
|
56
|
+
看着像追上了,其实是消息没了`
|
|
51
57
|
}
|
|
52
58
|
|
|
53
59
|
const COLLECT_HELP = `把全部 lark-cli profile 的事件收下来,原子落盘。零参数、零配置。
|
|
@@ -91,9 +97,11 @@ const STATUS_HELP = `一眼看清全局:谁在跑、积压多少、游标在哪
|
|
|
91
97
|
|
|
92
98
|
排障入口:某消费者「落后」很多 -> 它的 take 没在跑或卡住;
|
|
93
99
|
「无消费者」= 白采,可考虑 --exclude。
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
100
|
+
⚠️ 「落后」的那个消费者如果已经不打算再盯了,删掉它的游标:
|
|
101
|
+
\`rm -rf ~/.lark-relay/cursors/<name>\` -- 引擎不会自动清,
|
|
102
|
+
留着只会让这张表越来越长,且积压数会随 store 过期删除而虚假变小。
|
|
103
|
+
collect 行不是 running -> \`tail -f ~/.lark-relay/logs/collect.err.log\`
|
|
104
|
+
(launchd 不进统一日志),collect 停摆的每一秒都在丢消息。`
|
|
97
105
|
|
|
98
106
|
const GUIDE = `lark-relay -- Lark 事件中继站。两件事:收下来 / 我来取。
|
|
99
107
|
|
|
@@ -116,6 +124,9 @@ take 三步(照做)
|
|
|
116
124
|
起来后 stderr 有一行「监听中」-- 没有就是没起来,看 stderr。
|
|
117
125
|
一批处理完再起一个。不要自己写 while 循环 -- 进程退出会通知你。
|
|
118
126
|
退出码:0=有一批,4=超时没消息(正常,再起一个),2=参数错,3=游标被占用。
|
|
127
|
+
4. 不盯了收尾 rm -rf ~/.lark-relay/cursors/<name>
|
|
128
|
+
游标只为「关了会话、过阵子接着盯」而存在,引擎不会自动清。
|
|
129
|
+
临时监听、验完的排查、不再值守的任务,收尾时自己删掉
|
|
119
130
|
|
|
120
131
|
常见错误
|
|
121
132
|
· 拿不到消息 -> 九成是 bot 不在群。验 bot 必须 --as user,
|