mirror of
https://github.com/hanzoai/tasks.git
synced 2026-11-03 03:56:04 +00:00
Full module path rebrand from Temporal to Hanzo Tasks: - go.mod module: github.com/hanzoai/tasks - All internal Go imports updated (1906 files) - cmd/server renamed to cmd/tasksd - Binary name: tasksd (was temporal-server) - Docker images: hanzoai/tasks (was temporalio/server) - README rewritten with Hanzo Tasks branding - LLM.md created with integration notes - Makefile, goreleaser, CI workflows updated - go.temporal.io/sdk and go.temporal.io/api imports preserved (separate repos) Fork of Temporal.io (MIT license).
66 lines
1.6 KiB
Go
66 lines
1.6 KiB
Go
package api
|
|
|
|
import (
|
|
historyi "github.com/hanzoai/tasks/service/history/interfaces"
|
|
)
|
|
|
|
type WorkflowLease interface {
|
|
GetContext() historyi.WorkflowContext
|
|
GetMutableState() historyi.MutableState
|
|
GetReleaseFn() historyi.ReleaseWorkflowContextFunc
|
|
}
|
|
|
|
type workflowLease struct {
|
|
context historyi.WorkflowContext
|
|
mutableState historyi.MutableState
|
|
releaseFn historyi.ReleaseWorkflowContextFunc
|
|
}
|
|
|
|
type UpdateWorkflowAction struct {
|
|
Noop bool
|
|
CreateWorkflowTask bool
|
|
// Abort all "Workflow Updates" (not persistence updates) after persistence operation is succeeded but WF lock is not released.
|
|
AbortUpdates bool
|
|
}
|
|
|
|
var (
|
|
UpdateWorkflowWithNewWorkflowTask = &UpdateWorkflowAction{
|
|
CreateWorkflowTask: true,
|
|
}
|
|
UpdateWorkflowWithoutWorkflowTask = &UpdateWorkflowAction{
|
|
CreateWorkflowTask: false,
|
|
}
|
|
UpdateWorkflowTerminate = &UpdateWorkflowAction{
|
|
CreateWorkflowTask: false,
|
|
AbortUpdates: true,
|
|
}
|
|
)
|
|
|
|
type UpdateWorkflowActionFunc func(WorkflowLease) (*UpdateWorkflowAction, error)
|
|
|
|
var _ WorkflowLease = (*workflowLease)(nil)
|
|
|
|
func NewWorkflowLease(
|
|
wfContext historyi.WorkflowContext,
|
|
releaseFn historyi.ReleaseWorkflowContextFunc,
|
|
mutableState historyi.MutableState,
|
|
) WorkflowLease {
|
|
return &workflowLease{
|
|
context: wfContext,
|
|
releaseFn: releaseFn,
|
|
mutableState: mutableState,
|
|
}
|
|
}
|
|
|
|
func (w *workflowLease) GetContext() historyi.WorkflowContext {
|
|
return w.context
|
|
}
|
|
|
|
func (w *workflowLease) GetMutableState() historyi.MutableState {
|
|
return w.mutableState
|
|
}
|
|
|
|
func (w *workflowLease) GetReleaseFn() historyi.ReleaseWorkflowContextFunc {
|
|
return w.releaseFn
|
|
}
|