gosqs: персистить перенос в DLQ (SaveMessage в DLQ + DeleteMessagePersist исходной)
This commit is contained in:
@@ -18,8 +18,15 @@ func tenantQueueKey(tenantAccessKey, queueName string) string {
|
||||
return tenantAccessKey + ":" + queueName
|
||||
}
|
||||
|
||||
// getTenantFromContext — извлекает тенанта из request context.
|
||||
// Возвращает nil если тенант не найден (не должно быть — auth middleware должен это поймать раньше).
|
||||
// dlqKeyFor — ключ DLQ по ключу исходной очереди (формат "{accessKey}:{name}")
|
||||
// и имени DLQ. Используется для персиста перенесённых в DLQ сообщений.
|
||||
func dlqKeyFor(srcKey, dlqName string) string {
|
||||
idx := strings.LastIndex(srcKey, ":")
|
||||
if idx < 0 {
|
||||
return srcKey + ":" + dlqName
|
||||
}
|
||||
return srcKey[:idx] + ":" + dlqName
|
||||
}
|
||||
func getTenantFromContext(r *http.Request) *tenant.Tenant {
|
||||
t, _ := r.Context().Value(auth.TenantContextKey).(*tenant.Tenant)
|
||||
return t
|
||||
|
||||
Reference in New Issue
Block a user