P1.1 groundwork: per-queue mutex в Queue + анализ блокеров

Добавлены поле mu (не сериализуется) и LockMu/RLockMu-аксессоры в models.Queue;
исправлено копирование Queue by value (numberOfHiddenMessagesInQueue).
Глобальный лок пока используется везде — поведение не менялось.
Задокументированы блокеры полного перехода (DLQ-указатель, мутирующий
marshalQueueMeta, релинк DLQ после загрузки, атомарность перевода).
This commit is contained in:
Repinoid
2026-10-06 18:39:26 +03:00
parent 3a52960d5b
commit ed17c6cbd0
4 changed files with 70 additions and 3 deletions
+1 -1
View File
@@ -136,7 +136,7 @@ func processQueueTick(key string, queue *models.Queue) {
}
}
func numberOfHiddenMessagesInQueue(queue models.Queue) int {
func numberOfHiddenMessagesInQueue(queue *models.Queue) int {
num := 0
for _, m := range queue.Messages {
if m.ReceiptHandle != "" || m.DelaySecs > 0 && time.Now().Before(m.SentTime.Add(time.Duration(m.DelaySecs)*time.Second)) {