Documentation
¶
Index ¶
- Constants
- Variables
- func DeleteFlow(tag string) (bool, error)
- func HealthCheck() bool
- func Load() error
- func Reset(instanceId, updatedBy string) error
- func Rollback(instanceId, updatedBy string) (et.Json, error)
- func Run(instanceId, tag string, step int, tags et.Json, ctx et.Json, createdBy string) (et.Json, error)
- func SetLoadInstance(fn LoadInstanceFn)
- func SetSaveInstance(fn SaveInstanceFn)
- func Stop(instanceId, updatedBy string) error
- type Flow
- func (s *Flow) Consistency(consistency TpConsistency) *Flow
- func (s *Flow) Debug() *Flow
- func (s *Flow) IfElse(expression string, yesGoTo int, noGoTo int) *Flow
- func (s *Flow) Resilence(totalAttempts int, timeAttempts time.Duration, team string, level string) *Flow
- func (s *Flow) Retention(retentionTime time.Duration) *Flow
- func (s *Flow) Rollback(fn FnContext) *Flow
- func (s *Flow) Step(name, description string, fn FnContext, stop bool) *Flow
- func (s *Flow) ToJson() et.Json
- type FlowStatus
- type FnContext
- type Instance
- func (s *Instance) Done() error
- func (s *Instance) Goto(step int) error
- func (s *Instance) Save() error
- func (s *Instance) Serialize() ([]byte, error)
- func (s *Instance) SetParam(key string, value interface{})
- func (s *Instance) SetStatus(status FlowStatus) error
- func (s *Instance) Stop() error
- func (s *Instance) ToJson() et.Json
- type LoadInstanceFn
- type Result
- type SaveInstanceFn
- type Step
- type TpConsistency
- type WorkFlows
Constants ¶
const ( EVENT_WORKFLOW_SET = "workflow:set" EVENT_WORKFLOW_DELETE = "workflow:delete" EVENT_WORKFLOW_STATUS = "workflow:status" EVENT_WORKFLOW_AWAITING = "workflow:awaiting" EVENT_WORKFLOW_RESULTS = "workflow:results" )
const ( MSG_FLOW_CREATED = "Flujo definido Tag:%s version:%s name:%s" MSG_FLOW_NOT_FOUND = "Flujo no encontrado" MSG_FLOW_NOT_INSTANCE = "Flujo no instanciado" MSG_START_WORKFLOW = "Iniciando el workflow" MSG_INSTANCE_ID_REQUIRED = "Instance id es requerido" MSG_INSTANCE_NOT_FOUND = "Instancia no encontrada" MSG_INSTANCE_EXISTS = "Instancia existe" MSG_INSTANCE_FAILED = "Instancia fallido:%s Tag:%s status:%s, step:%d error:%s" MSG_INSTANCE_STATUS = "Instancia:%s Tag:%s status:%s, step:%d" MSG_INSTANCE_DEBUG = "Instancia:%s debug:%s" MSG_INSTANCE_GOTO = "Instancia %s Tag:%s ir al step:%d %s" MSG_INSTANCE_LOAD = "Instancia load:%s tag:%s currentStep:%d" MSG_INSTANCE_ALREADY_DONE = "Instancia ya finalizada Id:%s" MSG_INSTANCE_ALREADY_RUNNING = "Instancia ya en ejecucion Id:%s" MSG_INSTANCE_PENDING = "Instancia pendiente Id:%s" MSG_INSTANCE_CANCEL = "Instancia cancelada Id:%s" MSG_INSTANCE_LOSS = "Instancia perdida Id:%s" MSG_INSTANCE_WORKFLOWS_IS_NIL = "workFlows es nil" MSG_ID_REQUIRED = "id es requerido" MSG_INSTANCE_EXPRESSION_TRUE = "Resultado de la expresion es true" MSG_INSTANCE_EXPRESSION_FALSE = "Resultado de la expresion es false" MSG_INSTANCE_ROLLBACK = "Esta intentando hacer rollback de un step que no existe" MSG_INSTANCE_ROLLBACK_STEP = "haciendo rollback del step:%d" MSG_INSTANCE_STEP_CREATED = "Definido step:%d name:%s Tag:%s" MSG_INSTANCE_ROLLBACK_CREATED = "Definido rollback step:%d name:%s Tag:%s" MSG_INSTANCE_ROLLBACK_FAILED = "Rollback Instance:%s Tag:%s status:%s, step:%d error:%s" MSG_INSTANCE_CONSISTENCY = "Consistencia definida Tag:%s consistency:%s" MSG_INSTANCE_RESILIENCE = "Definida resilencia Tag:%s totalAttempts:%d timeAttempts:%s retentionTime:%s" MSG_INSTANCE_IFELSE = "Definido ifElse step:%d name:%s expresion:%s ? %d : %d Tag:%s" MSG_INSTANCE_RETENTION = "Definida retencion Tag:%s retentionTime:%s" MSG_INSTANCE_GOTO_USER_DECISION = "Por desicion del usuario" MSG_WORKFLOW_DELETE = "Workflow eliminado Tag:%s" MSG_WORKFLOW_DONE_INSTANCE = "Instancia terminada:%s" MSG_WORKFLOW_LIMIT_REQUESTS = "Límite de peticiones alcanzado, el proceso se pondra en espera para ejecusión, instanceId:%s" MSG_INSTANCE_RUN = "Run instance:%s, flow:%s" MSG_INSTANCE_EVALUATE = "error al evaluar expresion:%s, error:%s" )
Variables ¶
var (
ErrorInstanceNotFound = fmt.Errorf(MSG_INSTANCE_NOT_FOUND)
)
var FlowStatusList map[FlowStatus]bool = map[FlowStatus]bool{ FlowStatusPending: true, FlowStatusRunning: true, FlowStatusDone: true, FlowStatusFailed: true, FlowStatusLoss: true, FlowStatusCancel: true, }
Functions ¶
func DeleteFlow ¶
* * DeleteFlow * @param tag string * @return (bool, error) *
func Run ¶
func Run(instanceId, tag string, step int, tags et.Json, ctx et.Json, createdBy string) (et.Json, error)
* * Run * @param instanceId, tag string, step int, tags et.Json, ctx et.Json, createdBy string * @return et.Json, error *
func SetLoadInstance ¶ added in v1.1.161
func SetLoadInstance(fn LoadInstanceFn)
func SetSaveInstance ¶ added in v1.1.161
func SetSaveInstance(fn SaveInstanceFn)
Types ¶
type Flow ¶
type Flow struct {
Tag string `json:"tag"`
Version string `json:"version"`
Name string `json:"name"`
Description string `json:"description"`
TotalAttempts int `json:"total_attempts"`
TimeAttempts time.Duration `json:"time_attempts"`
RetentionTime time.Duration `json:"retention_time"`
Steps []*Step `json:"steps"`
TpConsistency TpConsistency `json:"tp_consistency"`
Team string `json:"team"`
Level string `json:"level"`
CreatedBy string `json:"created_by"`
// contains filtered or unexported fields
}
func New ¶
* * New * @param tag, version, name, description string, fn FnContext, createdBy string * @return *Flow *
func (*Flow) Consistency ¶
func (s *Flow) Consistency(consistency TpConsistency) *Flow
* * Consistency * @param consistency TpConsistency * @return *Flow *
func (*Flow) IfElse ¶
* * IfElse * @param expression string, yesGoTo int, noGoTo int * @return *Flow, error *
func (*Flow) Resilence ¶
func (s *Flow) Resilence(totalAttempts int, timeAttempts time.Duration, team string, level string) *Flow
* * Resilence * @param totalAttempts int, timeAttempts time.Duration * @return *Flow *
func (*Flow) Retention ¶ added in v1.1.127
* * Retention * @param retentionTime time.Duration * @return *Flow *
type FlowStatus ¶
type FlowStatus string
const ( FlowStatusPending FlowStatus = "pending" FlowStatusRunning FlowStatus = "running" FlowStatusDone FlowStatus = "done" FlowStatusFailed FlowStatus = "failed" FlowStatusLoss FlowStatus = "loss" FlowStatusCancel FlowStatus = "cancel" )
func Status ¶ added in v1.1.172
func Status(instanceId, status, updatedBy string) (FlowStatus, error)
* * Status * @param instanceId, status, updatedBy string * @return FlowStatus, error *
type Instance ¶ added in v1.1.128
type Instance struct {
*Flow
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Tag string `json:"tag"`
Id string `json:"id"`
CreatedBy string `json:"created_by"`
UpdatedBy string `json:"updated_by"`
Current int `json:"current"`
Ctx et.Json `json:"ctx"`
Ctxs map[int]et.Json `json:"ctxs"`
Results map[int]*Result `json:"results"`
Rollbacks map[int]*Result `json:"rollbacks"`
Status FlowStatus `json:"status"`
DoneAt time.Time `json:"done_at"`
Tags et.Json `json:"tags"`
WorkerHost string `json:"worker_host"`
Params et.Json `json:"params"`
// contains filtered or unexported fields
}
func GetInstance ¶ added in v1.1.138
* * GetInstance * @param instanceId string * @return (*Instance, error) *
func (*Instance) SetStatus ¶ added in v1.1.156
func (s *Instance) SetStatus(status FlowStatus) error
* * SetStatus * @param status FlowStatus * @return error *
type LoadInstanceFn ¶ added in v1.1.161
type Result ¶
type Result struct {
Step int `json:"step"`
Ctx et.Json `json:"ctx"`
Attempt int `json:"attempt"`
Result et.Json `json:"result"`
Error string `json:"error"`
}
type SaveInstanceFn ¶ added in v1.1.161
type Step ¶
type TpConsistency ¶
type TpConsistency string
const ( TpConsistencyStrong TpConsistency = "strong" TpConsistencyEventual TpConsistency = "eventual" )
type WorkFlows ¶
type WorkFlows struct {
Flows map[string]*Flow `json:"flows"`
Instances map[string]*Instance `json:"instances"`
Results map[string]et.Json `json:"results"`
// contains filtered or unexported fields
}