Enhance TED Scraper Initialization and Error Handling
- Updated the InitTEDScraper function to return a scheduler instance, allowing for better error handling during initialization. - Added error logging for failed scheduler initialization and job scheduling, improving robustness. - Implemented graceful shutdown for the scheduler in the main function, ensuring proper resource management during application termination.
This commit is contained in:
+10
-1
@@ -73,7 +73,11 @@ func main() {
|
||||
}
|
||||
|
||||
// Initialize TED scraper for scheduled mode
|
||||
bootstrap.InitTEDScraper(*config, mongoManager, appLogger, notificationService)
|
||||
scheduler := bootstrap.InitTEDScraper(*config, mongoManager, appLogger, notificationService)
|
||||
if scheduler == nil {
|
||||
appLogger.Error("Failed to initialize TED scraper scheduler", map[string]interface{}{})
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
// Set up signal handling for graceful shutdown
|
||||
signalChan := make(chan os.Signal, 1)
|
||||
@@ -83,5 +87,10 @@ func main() {
|
||||
<-signalChan
|
||||
appLogger.Info("Received shutdown signal, stopping scheduler...", map[string]interface{}{})
|
||||
|
||||
// Stop scheduler gracefully
|
||||
if scheduler != nil {
|
||||
scheduler.Stop()
|
||||
}
|
||||
|
||||
appLogger.Info("TED scraper application stopped", map[string]interface{}{})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user