use message queue to restore download from session file

This commit is contained in:
2024-05-13 11:15:08 +02:00
parent 6abfb57598
commit 62eadb52a6
2 changed files with 4 additions and 4 deletions

View File

@@ -88,7 +88,7 @@ func (m *MemoryDB) Persist() error {
}
// Restore a persisted state
func (m *MemoryDB) Restore(logger *slog.Logger) {
func (m *MemoryDB) Restore(mq *MessageQueue, logger *slog.Logger) {
fd, err := os.Open("session.dat")
if err != nil {
return
@@ -114,7 +114,7 @@ func (m *MemoryDB) Restore(logger *slog.Logger) {
m.table.Store(proc.Id, restored)
if restored.Progress.Percentage != "-1" {
go restored.Start()
mq.Publish(restored)
}
}
}

View File

@@ -77,8 +77,6 @@ func RunBlocking(cfg *RunConfig) {
slog.NewTextHandler(io.MultiWriter(logWriters...), &slog.HandlerOptions{}),
)
mdb.Restore(logger)
db, err := sql.Open("sqlite", cfg.DBPath)
if err != nil {
logger.Error("failed to open database", slog.String("err", err.Error()))
@@ -90,7 +88,9 @@ func RunBlocking(cfg *RunConfig) {
}
mq := internal.NewMessageQueue(logger)
go mq.Subscriber()
go mdb.Restore(mq, logger)
srv := newServer(serverConfig{
frontend: cfg.App,