diff options
| author | Bobby <[email protected]> | 2026-02-06 17:45:55 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2026-02-06 17:45:55 +0530 |
| commit | 2da45b9fbf74d365951e37a4152f30e76caaeb98 (patch) | |
| tree | 8fc9b5f02d37194c136e7f757f1e37c21825094c /tasks/tasks.go | |
| parent | 8cb229a3bc07387067ca76a34c05b44ff7a3039a (diff) | |
| download | metachan-2da45b9fbf74d365951e37a4152f30e76caaeb98.tar.xz metachan-2da45b9fbf74d365951e37a4152f30e76caaeb98.zip | |
Refactor task management and producer synchronization
- Updated TaskManager to utilize repositories for database operations, improving separation of concerns.
- Enhanced logging functionality by replacing logger.Log with logger.Infof, logger.Warnf, and logger.Errorf for better readability and consistency.
- Simplified ProducerSync function by removing unnecessary pagination logic and directly fetching producer data.
- Introduced helper functions for calculating progress and managing task statuses.
- Added new service for fetching and saving anime data, integrating multiple data sources (Jikan, Anilist, MALsync, TMDB, TVDB, Aniskip).
- Created new types for task management and improved overall code organization.
- Removed deprecated database calls and replaced them with repository methods for better maintainability.
Diffstat (limited to 'tasks/tasks.go')
| -rw-r--r-- | tasks/tasks.go | 38 |
1 files changed, 10 insertions, 28 deletions
diff --git a/tasks/tasks.go b/tasks/tasks.go index 31d017d..8b19a19 100644 --- a/tasks/tasks.go +++ b/tasks/tasks.go @@ -1,9 +1,7 @@ package tasks import ( - "fmt" "metachan/config" - "metachan/database" "metachan/types" "metachan/utils/logger" "sync" @@ -14,11 +12,10 @@ var GlobalTaskManager *TaskManager func init() { GlobalTaskManager = &TaskManager{ - Tasks: make(map[string]types.Task), - Tickers: make(map[string]*time.Ticker), - Done: make(map[string]chan bool), - Mutex: sync.Mutex{}, - Database: database.DB, + Tasks: make(map[string]types.Task), + Tickers: make(map[string]*time.Ticker), + Done: make(map[string]chan bool), + Mutex: sync.Mutex{}, } // Register ProducerSync task (every 7 days) - runs first to populate unified producer table @@ -29,10 +26,7 @@ func init() { }) if err != nil { - logger.Log(fmt.Sprintf("Failed to register ProducerSync task: %v", err), logger.LogOptions{ - Level: logger.Error, - Prefix: "TaskManager", - }) + logger.Errorf("TaskManager", "Failed to register ProducerSync task: %v", err) } // Register GenreSync task (every 7 days) @@ -43,10 +37,7 @@ func init() { }) if err != nil { - logger.Log(fmt.Sprintf("Failed to register GenreSync task: %v", err), logger.LogOptions{ - Level: logger.Error, - Prefix: "TaskManager", - }) + logger.Errorf("TaskManager", "Failed to register GenreSync task: %v", err) } // Register AniFetch task (weekly) - fetches anime mappings from Fribb list @@ -59,14 +50,11 @@ func init() { }) if err != nil { - logger.Log(fmt.Sprintf("Failed to register AnimeFetch task: %v", err), logger.LogOptions{ - Level: logger.Error, - Prefix: "TaskManager", - }) + logger.Errorf("TaskManager", "Failed to register AnimeFetch task: %v", err) } // Register AnimeSync task (runs after AnimeFetch completes) - only if enabled in config - if config.Config.AniSync { + if config.Sync.AniSync { err = GlobalTaskManager.RegisterTask(types.Task{ Name: "AnimeSync", Interval: 0, // Manual-only - waits for AnimeFetch dependency @@ -75,10 +63,7 @@ func init() { }) if err != nil { - logger.Log(fmt.Sprintf("Failed to register AnimeSync task: %v", err), logger.LogOptions{ - Level: logger.Error, - Prefix: "TaskManager", - }) + logger.Errorf("TaskManager", "Failed to register AnimeSync task: %v", err) } } @@ -90,9 +75,6 @@ func init() { }) if err != nil { - logger.Log(fmt.Sprintf("Failed to register AnimeUpdate task: %v", err), logger.LogOptions{ - Level: logger.Error, - Prefix: "TaskManager", - }) + logger.Errorf("TaskManager", "Failed to register AnimeUpdate task: %v", err) } } |
