P1.4: tenant-индекс очередей (O(1) подсчёт/список вместо скана)

Введён тип QueueStore с индексом accessKey→{queueName}. Мутации очередей идут через
AddQueue/RemoveQueue (create/delete/restore/config/seed/admin), подсчёт и список —
через CountTenantQueues/TenantQueueNames. Устранены O(total) скан-по-префиксу в
countTenantQueues, deleteTenant, listTenantQueues, createTenantQueue. API SyncQueues
(Queues, Lock) сохранён — остальной код не затронут.
This commit is contained in:
Repinoid
2026-10-06 18:36:03 +03:00
parent fb833ef01c
commit 3a52960d5b
9 changed files with 127 additions and 62 deletions
+2 -2
View File
@@ -104,7 +104,7 @@ func seedDemoData(store *tenant.TenantStore) {
}
models.SyncQueues.Lock()
models.SyncQueues.Queues[key] = &models.Queue{
models.SyncQueues.AddQueue(key, &models.Queue{
Name: q.name,
URL: queueURL,
Arn: queueARN,
@@ -113,7 +113,7 @@ func seedDemoData(store *tenant.TenantStore) {
MessageRetentionPeriod: 345600,
Messages: msgs,
Duplicates: make(map[string]time.Time),
}
})
models.SyncQueues.Unlock()
log.Infof("seed: очередь %s (%d сообщений)", q.name, len(q.msgs))