feat: add generic queue and subscription retirement
This commit is contained in:
32
sdk/go/retirement.go
Normal file
32
sdk/go/retirement.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package orbit
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
)
|
||||
|
||||
// RetireResourceRequest 永久退役已结清的资源;保留原键/版本用于未知回执重报。
|
||||
type RetireResourceRequest struct {
|
||||
ExpectedRevision uint64 `json:"expected_revision,string"` // ExpectedRevision 当前配置版本。
|
||||
Reason string `json:"reason"` // Reason 管理原因,写入服务端审计。
|
||||
}
|
||||
|
||||
// RetireQueue 拒绝新工作并保留历史;未结清资源返回 RESOURCE_BUSY。
|
||||
func (c *Client) RetireQueue(ctx context.Context, id, key string, in RetireResourceRequest) (CreateQueueResult, error) {
|
||||
var out CreateQueueResult
|
||||
if !validID(id) {
|
||||
return out, errors.New("invalid queue id")
|
||||
}
|
||||
err := c.call(ctx, "POST", "/v1/queues/"+id+":retire", key, in, &out)
|
||||
return out, err
|
||||
}
|
||||
|
||||
// RetireSubscription 只在结果全部确认后退役,释放活动名额;不可重新启用。
|
||||
func (c *Client) RetireSubscription(ctx context.Context, id, key string, in RetireResourceRequest) (SubscriptionResult, error) {
|
||||
var out SubscriptionResult
|
||||
if !validID(id) {
|
||||
return out, errors.New("invalid subscription id")
|
||||
}
|
||||
err := c.call(ctx, "POST", "/v1/subscriptions/"+id+":retire", key, in, &out)
|
||||
return out, err
|
||||
}
|
||||
Reference in New Issue
Block a user