mongo

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2021 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrJobNotFound           = errors.New("the job id could not be found in the jobs collection")
	ErrEmptyIDProvided       = errors.New("id must not be an empty string")
	ErrDuplicateIDProvided   = errors.New("id must be unique")
	ErrExistingJobInProgress = errors.New("there is an existing job currently in progress")
	ErrTaskNotFound          = errors.New("the task name could not be found for the job id in the search database")
	ErrEmptyTaskNameProvided = errors.New("task name must not be an empty string")
)

A list of error messages for Mongo

Functions

This section is empty.

Types

type JobStore

type JobStore struct {
	Session         *mgo.Session
	URI             string
	Database        string
	JobsCollection  string
	LocksCollection string
	TasksCollection string
	// contains filtered or unexported fields
}

JobStore is a type that contains an implementation of the MongoJobStorer interface, which can be used for creating and getting Job resources. It also represents a simplistic MongoDB configuration, with session, health and lock clients

func (*JobStore) AcquireJobLock

func (m *JobStore) AcquireJobLock(ctx context.Context, jobID string) (lockID string, err error)

AcquireJobLock tries to lock the provided jobID. If the job is already locked, this function will block until it's released, at which point we acquire the lock and return.

func (*JobStore) Checker

func (m *JobStore) Checker(ctx context.Context, state *healthcheck.CheckState) error

Checker is called by the healthcheck library to check the health state of this mongoDB instance

func (*JobStore) Close

func (m *JobStore) Close(ctx context.Context) error

Close closes the mongo session and returns any error

func (*JobStore) CreateJob

func (m *JobStore) CreateJob(ctx context.Context, id string) (models.Job, error)

CreateJob creates a new job, with the given id, in the collection, and assigns default values to its attributes

func (*JobStore) CreateTask added in v0.9.0

func (m *JobStore) CreateTask(ctx context.Context, jobID string, taskName string, numDocuments int) (models.Task, error)

CreateTask creates a new task, for the given API and job ID, in the collection, and assigns default values to its attributes

func (*JobStore) GetJob

func (m *JobStore) GetJob(ctx context.Context, id string) (models.Job, error)

GetJob retrieves the details of a particular job, from the collection, specified by its id

func (*JobStore) GetJobs

func (m *JobStore) GetJobs(ctx context.Context, offsetParam string, limitParam string) (models.Jobs, error)

GetJobs retrieves all the jobs, from the collection, and lists them in order of last_updated

func (*JobStore) GetTask added in v0.10.0

func (m *JobStore) GetTask(ctx context.Context, jobID string, taskName string) (models.Task, error)

GetTask retrieves the details of a particular task, from the collection, specified by its task name and associated job id

func (*JobStore) Init

func (m *JobStore) Init(ctx context.Context, cfg *config.Config) (err error)

Init creates a new mgo.Session with a strong consistency and a write mode of "majority".

func (*JobStore) PutNumberOfTasks added in v0.6.0

func (m *JobStore) PutNumberOfTasks(ctx context.Context, id string, numTasks int) error

PutNumberOfTasks updates the number_of_tasks in a particular job, from the collection, specified by its id

func (*JobStore) UnlockJob

func (m *JobStore) UnlockJob(lockID string) error

UnlockJob releases an exclusive mongoDB lock for the provided lockId (if it exists)

func (*JobStore) UpdateJob added in v0.6.0

func (m *JobStore) UpdateJob(updates bson.M, s *mgo.Session, id string) error

UpdateJob updates a particular job with the values passed in through the 'updates' input parameter

func (*JobStore) UpsertTask added in v0.9.0

func (m *JobStore) UpsertTask(jobID, taskName string, task models.Task) error

UpsertTask creates a new task document or overwrites an existing one

Jump to

Keyboard shortcuts

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