Documentation
¶
Index ¶
Constants ¶
View Source
const ( Unknown string = "Unknown" Pending = "Pending" In_Progress = "In_Progress" Completed = "Completed" Failed = "Failed" Cancelled = "Cancelled" )
Variables ¶
This section is empty.
Functions ¶
func CreateProcessor ¶
func CreateProcessor(serviceBusReceiver sb.ServiceBusReceiver, matcher *Matcher) (*shuttle.Processor, error)
Types ¶
type APIOperation ¶
type APIOperation interface {
Run(ctx context.Context) *Result
Retry(ctx context.Context) error
Guardconcurrency(*Entity) (*CategorizedError, error)
EntityFetcher() (*Entity, error)
Init(OperationRequest) (*APIOperation, error)
GetName() string
}
OpInterface is the interface all operations will need to implement.
type CategorizedError ¶
func NewCategorizedError ¶
func NewCategorizedError(message string, innerMessage string, errorCode int) *CategorizedError
func (*CategorizedError) Error ¶
func (ce *CategorizedError) Error() string
type Matcher ¶
func NewMatcher ¶
func NewMatcher() *Matcher
func (*Matcher) CreateInstance ¶
func (m *Matcher) CreateInstance(key string) (APIOperation, error)
This will create an empty instance of the type, with which you can then call op.Init() and initialize any info you need.
func (*Matcher) Get ¶
TODO(mheberling): do we need to delete this? Get retrieves a value from the map by its key
func (*Matcher) Register ¶
func (m *Matcher) Register(key string, value APIOperation)
Set adds a key-value pair to the map Ex: matcher.Register("LongRunning", &LongRunning{})
type OperationRequest ¶
type OperationRequest struct {
//TODO(mheberling): figure out which general fields we need to add.
OperationName string
APIVersion string
Context context.Context
OperationId string
// HTTP
Body []byte
HttpMethod string
RetryCount int
}
All the fields that the operations might need. This struct will be part of every operation.
Click to show internal directories.
Click to hide internal directories.