...
This commit is contained in:
@@ -19,6 +19,7 @@ type ServerFactory struct {
|
||||
redisServer *redisserver.Server
|
||||
webdavServer *webdavserver.Server
|
||||
uiApp *AppInstance
|
||||
jobManager *JobManager
|
||||
|
||||
// Control channels
|
||||
stopCh chan struct{}
|
||||
@@ -64,6 +65,13 @@ func (f *ServerFactory) Start() error {
|
||||
}
|
||||
}
|
||||
|
||||
// Start job manager if enabled
|
||||
if f.config.EnableJobs {
|
||||
if err := f.startJobManager(); err != nil {
|
||||
return fmt.Errorf("failed to start job manager: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
log.Println("All servers started successfully")
|
||||
return nil
|
||||
}
|
||||
@@ -82,6 +90,13 @@ func (f *ServerFactory) Stop() error {
|
||||
}
|
||||
}
|
||||
|
||||
// Stop job manager if it's running
|
||||
if f.jobManager != nil {
|
||||
if err := f.jobManager.Stop(); err != nil {
|
||||
log.Printf("Error stopping job manager: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Wait for all goroutines to finish
|
||||
f.wg.Wait()
|
||||
|
||||
@@ -177,3 +192,35 @@ func (f *ServerFactory) GetWebDAVServer() *webdavserver.Server {
|
||||
func (f *ServerFactory) GetUIApp() *AppInstance {
|
||||
return f.uiApp
|
||||
}
|
||||
|
||||
// startJobManager initializes and starts the job manager
|
||||
func (f *ServerFactory) startJobManager() error {
|
||||
log.Println("Starting job manager...")
|
||||
|
||||
// Create Redis connection for job manager
|
||||
redisConn := &RedisConnection{
|
||||
TCPPort: f.config.Redis.TCPPort,
|
||||
UnixSocketPath: f.config.Redis.UnixSocketPath,
|
||||
}
|
||||
|
||||
// Create job manager
|
||||
jobManager, err := NewJobManager(f.config.Jobs, redisConn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to create job manager: %w", err)
|
||||
}
|
||||
|
||||
f.jobManager = jobManager
|
||||
|
||||
// Start job manager
|
||||
if err := jobManager.Start(); err != nil {
|
||||
return fmt.Errorf("failed to start job manager: %w", err)
|
||||
}
|
||||
|
||||
log.Println("Job manager started")
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetJobManager returns the job manager instance
|
||||
func (f *ServerFactory) GetJobManager() *JobManager {
|
||||
return f.jobManager
|
||||
}
|
||||
|
Reference in New Issue
Block a user