fix: 捕获钉钉 Stream SDK 内部 panic,避免崩溃
钉钉 SDK v0.9.1 在连接断开时有 send on closed channel panic, 加 defer recover 捕获后自动重连。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -181,9 +181,16 @@ func (p *Platform) Start(handler core.MessageHandler) error {
|
||||
default:
|
||||
}
|
||||
|
||||
if err := p.streamClient.Start(ctx); err != nil {
|
||||
slog.Warn("dingtalk: stream disconnected, reconnecting", "error", err)
|
||||
}
|
||||
func() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
slog.Error("dingtalk: stream panic, reconnecting", "recover", r)
|
||||
}
|
||||
}()
|
||||
if err := p.streamClient.Start(ctx); err != nil {
|
||||
slog.Warn("dingtalk: stream disconnected, reconnecting", "error", err)
|
||||
}
|
||||
}()
|
||||
|
||||
// Brief pause before reconnecting to avoid tight loop on persistent failures.
|
||||
select {
|
||||
|
||||
Reference in New Issue
Block a user