jstore

package
v0.1.1-pre.1 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2020 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// ErrNotFound indicates the instance doesn't exist.
	ErrNotFound = errors.New("job not found")
)

Functions

This section is empty.

Types

type StartedDeals

type StartedDeals struct {
	Cid          cid.Cid
	ProposalCids []cid.Cid
}

StartedDeals describe deals that are currently waiting to have a final status.

type Store

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

Store is a Datastore implementation of JobStore, which saves state of scheduler Jobs.

func New

func New(ds datastore.Datastore) (*Store, error)

New returns a new JobStore backed by the Datastore.

func (*Store) AddStartedDeals

func (s *Store) AddStartedDeals(c cid.Cid, proposals []cid.Cid) error

AddStartedDeals is a temporal storage solution of deals that are started are being watched. It serves as a recovery point to reattach to fired deals when the scheduler was abruptly interrupted.

func (*Store) Close

func (s *Store) Close() error

Close closes the Store, unregistering any subscribed watchers.

func (*Store) Dequeue

func (s *Store) Dequeue() (*ffs.Job, error)

Dequeue dequeues a Job which doesn't have have another Executing Job for the same Cid. Saying it differently, it's safe to execute. The returned job Status is automatically changed to Executing. If no jobs are available to dequeue it returns a nil *ffs.Job and no-error.

func (*Store) Enqueue

func (s *Store) Enqueue(j ffs.Job) error

Enqueue queues a new Job. If other Job for the same Cid is in Queued status, it will be automatically marked as Canceled.

func (*Store) Finalize

func (s *Store) Finalize(jid ffs.JobID, st ffs.JobStatus, jobError error, dealErrors []ffs.DealError) error

Finalize sets a Job status to a final state, i.e. Success or Failed, with a list of Deal errors occurred during job execution.

func (*Store) Get

func (s *Store) Get(jid ffs.JobID) (ffs.Job, error)

Get returns the current state of Job. If doesn't exist, returns ErrNotFound.

func (*Store) GetExecutingJobs

func (s *Store) GetExecutingJobs() []ffs.JobID

GetExecutingJobs returns the JobIDs of all Jobs in Executing status.

func (*Store) GetStartedDeals

func (s *Store) GetStartedDeals(c cid.Cid) ([]cid.Cid, error)

GetStartedDeals gets all stored started deals from Cid. If no started deals are present, an empty slice is returned.

func (*Store) RemoveStartedDeals

func (s *Store) RemoveStartedDeals(c cid.Cid) error

RemoveStartedDeals removes all started deals from Cid.

func (*Store) Watch

func (s *Store) Watch(ctx context.Context, c chan<- ffs.Job, iid ffs.APIID) error

Watch subscribes to Job changes from a specified Api instance.

Jump to

Keyboard shortcuts

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