pkg

package
v0.0.0-...-b39f2bd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 24, 2020 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const MAXDURATION int = 10000
View Source
const MAXWORKER uint64 = 2

The total concurrent jobs we want to handle

View Source
const WORKERIDEXPIRE uint64 = 5

Variables

View Source
var MapParamtoState = map[string]STATE{
	"PAUSE":  PAUSE,
	"STOP":   STOP,
	"RESUME": PLAY,
}
View Source
var MapStatetoMsg = map[STATE]string{
	NOT_RUNNING: "Not Running",
	PLAY:        "Running",
	PAUSE:       "Paused",
	STOP:        "Terminated",
	COMPLETED:   "Completed",
}

Functions

func NewResponse

func NewResponse(ID string, Status string, ResponseCode int, Message string, w *http.ResponseWriter)

func PermissiveCORS

func PermissiveCORS(w http.ResponseWriter, r *http.Request)

func PermissiveCORSMiddleware

func PermissiveCORSMiddleware(next func(http.ResponseWriter, *http.Request)) func(http.ResponseWriter, *http.Request)

func RegisterLogger

func RegisterLogger() log.Logger

Types

type STATE

type STATE int

ENUM for defining possible states for a worker

const (
	NOT_RUNNING STATE = iota
	PLAY
	PAUSE
	STOP
	COMPLETED
)

type Scheduler

type Scheduler struct {
	// contains filtered or unexported fields
}

func NewScheduler

func NewScheduler() *Scheduler

func (*Scheduler) CheckTaskPresent

func (schd *Scheduler) CheckTaskPresent(id ulid.ULID) bool

Check if the task is present in the scheduler

func (*Scheduler) DecrementTaskCount

func (schd *Scheduler) DecrementTaskCount()

func (*Scheduler) GetState

func (schd *Scheduler) GetState(id ulid.ULID) (STATE, error)

func (*Scheduler) IncrementTaskCount

func (schd *Scheduler) IncrementTaskCount()

func (*Scheduler) ModifyState

func (schd *Scheduler) ModifyState(id ulid.ULID, newState STATE) error

func (*Scheduler) RemoveTask

func (schd *Scheduler) RemoveTask(id ulid.ULID) error

func (*Scheduler) ScheduleTask

func (schd *Scheduler) ScheduleTask(task *Task) error

func (*Scheduler) TotalTask

func (schd *Scheduler) TotalTask() uint64

type ServerComponent

type ServerComponent struct {
	// contains filtered or unexported fields
}

func NewServerComponent

func NewServerComponent(srv *http.Server, logger log.Logger) *ServerComponent

func (*ServerComponent) CreateNewJob

func (comp *ServerComponent) CreateNewJob(w http.ResponseWriter, r *http.Request)

General Server API Handler

func (*ServerComponent) CreateWorkerHandler

func (comp *ServerComponent) CreateWorkerHandler(w http.ResponseWriter, r *http.Request)

Upload API Handler

func (*ServerComponent) DownloadWorkerHandler

func (comp *ServerComponent) DownloadWorkerHandler(w http.ResponseWriter, r *http.Request)

Download API Handler

func (*ServerComponent) GetWorkerStatus

func (comp *ServerComponent) GetWorkerStatus(w http.ResponseWriter, r *http.Request)

func (*ServerComponent) HandleJob

func (comp *ServerComponent) HandleJob(w http.ResponseWriter, r *http.Request)

Long Running task API Handler

func (*ServerComponent) ModifyWorkerStatus

func (comp *ServerComponent) ModifyWorkerStatus(w http.ResponseWriter, r *http.Request)

type Task

type Task struct {
	// contains filtered or unexported fields
}

func NewTask

func NewTask(id ulid.ULID, logger log.Logger, fn func(int, log.Logger, time.Duration) error, dur time.Duration, delta time.Duration) *Task

func (*Task) GetID

func (t *Task) GetID() ulid.ULID

func (*Task) Run

func (t *Task) Run(signalState chan STATE, errorChan chan error, wg *sync.WaitGroup)

func (*Task) State

func (t *Task) State() STATE

type WorkerStatus

type WorkerStatus struct {
	ID           string `json:"worker-id"`
	Status       string `json:"task-status"`
	ResponseCode int    `json:"reponse-status-code"`
	Message      string `json:"message"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL