use message queue to restore download from session file
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user