Made correct project layout

This commit is contained in:
Alexander Zavorotynskiy 2022-05-05 09:45:38 +02:00
parent 5b7c479f4d
commit 167d1e117e
10 changed files with 16 additions and 12 deletions

View file

@ -2,6 +2,8 @@ package main
import (
"log"
"openreplay/backend/internal/datasaver"
"openreplay/backend/internal/heuristics"
"time"
"os"
@ -15,7 +17,6 @@ import (
"openreplay/backend/pkg/messages"
"openreplay/backend/pkg/queue"
"openreplay/backend/pkg/queue/types"
"openreplay/backend/services/db/heuristics"
)
func main() {
@ -27,8 +28,8 @@ func main() {
// Init modules
heurFinder := heuristics.NewHandler()
mi := NewMessageInserter(pg)
si := NewStatsInserter(pg)
mi := datasaver.NewMessageInserter(pg)
si := datasaver.NewStatsInserter(pg)
statsLogger := logger.NewQueueStats(env.Int("LOG_QUEUE_STATS_INTERVAL_SEC"))
// Handler logic
@ -36,14 +37,14 @@ func main() {
statsLogger.Collect(sessionID, meta)
// Just insert message into db without additional checks
if err := mi.insertMessage(sessionID, msg); err != nil {
if err := mi.InsertMessage(sessionID, msg); err != nil {
if !postgres.IsPkeyViolation(err) {
log.Printf("Message Insertion Error %v, SessionID: %v, Message: %v", err, sessionID, msg)
}
return
}
// Try to get session from db
// Try to get session from db for the following handlers
session, err := pg.GetSession(sessionID)
if err != nil {
// Might happen due to the assets-related message TODO: log only if session is necessary for this kind of message
@ -52,22 +53,25 @@ func main() {
}
// Insert statistics
err = si.insertStats(session, msg)
err = si.InsertStats(session, msg)
if err != nil {
log.Printf("Stats Insertion Error %v; Session: %v, Message: %v", err, session, msg)
}
// Insert heuristics
heurFinder.HandleMessage(session, msg)
// TODO: ???
heurFinder.IterateSessionReadyMessages(sessionID, func(msg messages.Message) {
// TODO: DRY code (carefully with the return statement logic)
if err := mi.insertMessage(sessionID, msg); err != nil {
if err := mi.InsertMessage(sessionID, msg); err != nil {
if !postgres.IsPkeyViolation(err) {
log.Printf("Message Insertion Error %v; Session: %v, Message %v", err, session, msg)
}
return
}
if err := si.insertStats(session, msg); err != nil {
if err := si.InsertStats(session, msg); err != nil {
log.Printf("Stats Insertion Error %v; Session: %v, Message %v", err, session, msg)
}
})

View file

@ -1,4 +1,4 @@
package main
package datasaver
import (
"openreplay/backend/pkg/db/cache"
@ -13,7 +13,7 @@ func NewMessageInserter(pg *cache.PGCache) *MessageInserter {
return &MessageInserter{pg: pg}
}
func (mi *MessageInserter) insertMessage(sessionID uint64, msg Message) error {
func (mi *MessageInserter) InsertMessage(sessionID uint64, msg Message) error {
switch m := msg.(type) {
// Common
case *Metadata:

View file

@ -1,4 +1,4 @@
package main
package datasaver
import (
"openreplay/backend/pkg/db/cache"
@ -14,7 +14,7 @@ func NewStatsInserter(pg *cache.PGCache) *StatsInserter {
return &StatsInserter{pg: pg}
}
func (si *StatsInserter) insertStats(session *Session, msg Message) error {
func (si *StatsInserter) InsertStats(session *Session, msg Message) error {
switch m := msg.(type) {
// Web
case *PerformanceTrackAggr:

View file