fix(notify): 根治低带宽控制面阻塞与传输写入卡死
- 为控制消息增加优先级、公平调度、队列字节预算和自适应批处理 - 支持可取消的写门等待,收紧 shared/dedicated bulk、stream 和 Reply 写入边界 - 修复 bulk reset/close、连接 handoff 和安全 profile 切换时序 - 保留旧取消与超时错误契约,新增阶段化 TransportSendError - 增加 ReplyCtx、ReplyObjCtx、写超时配置及黑洞连接和竞态回归测试
This commit is contained in:
+33
-6
@@ -793,31 +793,58 @@ func sendBulkResetServerTransport(ctx context.Context, s Server, transport *Tran
|
||||
return decodeBulkResetResponse(msg)
|
||||
}
|
||||
|
||||
func sendBulkReleaseClient(c Client, req BulkReleaseRequest) error {
|
||||
func sendBulkReleaseClient(ctx context.Context, c *ClientCommon, req BulkReleaseRequest) error {
|
||||
if c == nil {
|
||||
return errBulkClientNil
|
||||
}
|
||||
return c.SendObj(BulkReleaseSignalKey, req)
|
||||
data, err := encode(req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = c.sendWithContext(ctx, TransferMsg{
|
||||
Key: BulkReleaseSignalKey,
|
||||
Value: data,
|
||||
Type: MSG_ASYNC,
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func sendBulkReleaseServerLogical(s Server, logical *LogicalConn, req BulkReleaseRequest) error {
|
||||
func sendBulkReleaseServerLogical(ctx context.Context, s *ServerCommon, logical *LogicalConn, req BulkReleaseRequest) error {
|
||||
if s == nil {
|
||||
return errBulkServerNil
|
||||
}
|
||||
if logical == nil {
|
||||
return errBulkLogicalConnNil
|
||||
}
|
||||
return s.SendObjLogical(logical, BulkReleaseSignalKey, req)
|
||||
data, err := encode(req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = s.sendLogicalContext(ctx, logical, TransferMsg{
|
||||
Key: BulkReleaseSignalKey,
|
||||
Value: data,
|
||||
Type: MSG_ASYNC,
|
||||
}, 0)
|
||||
return err
|
||||
}
|
||||
|
||||
func sendBulkReleaseServerTransport(s Server, transport *TransportConn, req BulkReleaseRequest) error {
|
||||
func sendBulkReleaseServerTransport(ctx context.Context, s *ServerCommon, transport *TransportConn, req BulkReleaseRequest) error {
|
||||
if s == nil {
|
||||
return errBulkServerNil
|
||||
}
|
||||
if transport == nil {
|
||||
return errBulkTransportNil
|
||||
}
|
||||
return s.SendObjTransport(transport, BulkReleaseSignalKey, req)
|
||||
data, err := encode(req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = s.sendTransportContext(ctx, transport, TransferMsg{
|
||||
Key: BulkReleaseSignalKey,
|
||||
Value: data,
|
||||
Type: MSG_ASYNC,
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func decodeBulkOpenRequest(msg *Message) (BulkOpenRequest, error) {
|
||||
|
||||
Reference in New Issue
Block a user