Documentation
ΒΆ
Index ΒΆ
- type MessageCache
- func (m *MessageCache) AttemptCachePrivateWithRateLimit(userID string, msg models.PrivateChatMessage) (int, error)
- func (m *MessageCache) AttemptCacheWithRateLimit(userID string, msg models.ChatMessage) (int, error)
- func (m *MessageCache) CacheChatMessage(msg models.ChatMessage) int
- func (m *MessageCache) CachePrivateMessage(msg models.PrivateChatMessage) int
- func (m *MessageCache) CheckRateLimitValkey(userID string, limit int, ttlSeconds int) (bool, error)
- func (m *MessageCache) DeleteCachedMessage(cacheID int) bool
- func (m *MessageCache) FlushCacheToDB()
- func (m *MessageCache) FlushPrivateMessagesToDB()
- func (m *MessageCache) GetCachedChatMessages() []models.ChatMessage
- func (m *MessageCache) GetCachedPrivateMessages(userID string) []models.PrivateChatMessage
- func (m *MessageCache) StartPeriodicFlush()
- func (m *MessageCache) UpdateRateLimitSettings(limit int, window int)
Constants ΒΆ
This section is empty.
Variables ΒΆ
This section is empty.
Functions ΒΆ
This section is empty.
Types ΒΆ
type MessageCache ΒΆ
type MessageCache struct { ValkeyClient valkey.Client DB *pgxpool.Pool WindowSeconds int MessageLimit int // contains filtered or unexported fields }
func (*MessageCache) AttemptCachePrivateWithRateLimit ΒΆ
func (m *MessageCache) AttemptCachePrivateWithRateLimit(userID string, msg models.PrivateChatMessage) (int, error)
func (*MessageCache) AttemptCacheWithRateLimit ΒΆ
func (m *MessageCache) AttemptCacheWithRateLimit(userID string, msg models.ChatMessage) (int, error)
func (*MessageCache) CacheChatMessage ΒΆ
func (m *MessageCache) CacheChatMessage(msg models.ChatMessage) int
Caches a chat message in Valkey and triggers a DB flush if max cache size is reached
func (*MessageCache) CachePrivateMessage ΒΆ
func (m *MessageCache) CachePrivateMessage(msg models.PrivateChatMessage) int
func (*MessageCache) CheckRateLimitValkey ΒΆ
func (*MessageCache) DeleteCachedMessage ΒΆ
func (m *MessageCache) DeleteCachedMessage(cacheID int) bool
func (*MessageCache) FlushCacheToDB ΒΆ
func (m *MessageCache) FlushCacheToDB()
Flushes cached messages to the PostgreSQL database
func (*MessageCache) FlushPrivateMessagesToDB ΒΆ
func (m *MessageCache) FlushPrivateMessagesToDB()
FlushPrivateMessagesToDB writes Valkey-cached private messages to PostgreSQL and clears the flush list
func (*MessageCache) GetCachedChatMessages ΒΆ
func (m *MessageCache) GetCachedChatMessages() []models.ChatMessage
Retrieves chat messages from the circular cache
func (*MessageCache) GetCachedPrivateMessages ΒΆ
func (m *MessageCache) GetCachedPrivateMessages(userID string) []models.PrivateChatMessage
func (*MessageCache) StartPeriodicFlush ΒΆ
func (m *MessageCache) StartPeriodicFlush()
StartPeriodicFlush triggers database flush every interval
func (*MessageCache) UpdateRateLimitSettings ΒΆ
func (m *MessageCache) UpdateRateLimitSettings(limit int, window int)
Click to show internal directories.
Click to hide internal directories.