Skip to content
Snippets Groups Projects
Select Git revision
  • fb24975c1b6d3ff272613134440ac35ceb4a3f30
  • master default protected
  • 1.31
  • 4.28.0
  • 4.27.0
  • 4.26.0
  • 4.25.5
  • 4.25.4
  • 4.25.3
  • 4.25.2
  • 4.25.1
  • 4.25.0
  • 4.24.3
  • 4.24.2
  • 4.24.1
  • 4.24.0
  • 4.23.6
  • 4.23.5
  • 4.23.4
  • 4.23.3
  • 4.23.2
  • 4.23.1
  • 4.23.0
23 results

translations.mjs

Blame
  • manager.go 8.57 KiB
    package jobqueue
    
    import (
    	"fmt"
    	"github.com/robfig/cron/v3"
    	"gorm.io/gorm"
    	"sync"
    	"time"
    )
    
    type ManagerState int
    
    const (
    	ManagerStateStopped = iota
    	ManagerStateRunning
    )
    
    type Manager struct {
    	state ManagerState
    
    	queue     *Queue
    	workerMap map[WorkerID]Worker
    	eventBus  *EventBus
    
    	activeJobs map[JobID]GenericJob
    
    	jobEventCh chan interface{}
    
    	cronInstance *cron.Cron
    	logger       Logger
    
    	database *gorm.DB
    	dbSaver  *DBSaver
    
    	mu sync.Mutex
    }
    
    // NewManager initializes a new Manager
    func NewManager() *Manager {
    
    	eventBus := NewEventBus()
    
    	mng := &Manager{
    		state:      ManagerStateStopped,
    		queue:      NewQueue(eventBus),
    		workerMap:  make(map[WorkerID]Worker),
    		eventBus:   eventBus,
    		activeJobs: make(map[JobID]GenericJob),
    	}
    
    	return mng
    
    }
    
    func (m *Manager) GetEventBus() *EventBus {
    	m.mu.Lock()
    	defer m.mu.Unlock()
    	return m.eventBus
    }
    
    func (m *Manager) SetCronInstance(cronInstance *cron.Cron) *Manager {
    	m.mu.Lock()
    	defer m.mu.Unlock()
    	m.cronInstance = cronInstance
    	return m
    }
    
    func (m *Manager) GetCronInstance() *cron.Cron {
    	m.mu.Lock()
    	defer m.mu.Unlock()