mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
## What changed? - Merge PR combining the previous PRs: #8164, #8165, #8166, #8167, #8168, #8169 ## Why? - All of those PRs are interdependent and cannot be merged individually cleanly. Sending a single merge commit PR to be merged to main. ## How did you test it? - [ ] built - [ ] run locally and tested manually - [ ] covered by existing tests - [ ] added new unit test(s) - [ ] added new functional test(s) ## Potential risks - It's still disabled.
33 lines
969 B
Go
33 lines
969 B
Go
package scheduler
|
|
|
|
import (
|
|
"go.temporal.io/server/chasm"
|
|
"go.temporal.io/server/chasm/lib/scheduler/gen/schedulerpb/v1"
|
|
)
|
|
|
|
// The Generator component is responsible for buffering actions according
|
|
// to the schedule's specification. Manually requested actions (from an immediate
|
|
// request or backfill) are separately handled in the Backfiller component.
|
|
type Generator struct {
|
|
chasm.UnimplementedComponent
|
|
|
|
*schedulerpb.GeneratorState
|
|
|
|
Scheduler chasm.Field[*Scheduler]
|
|
}
|
|
|
|
// NewGenerator returns an intialized Generator component, which should
|
|
// be parented under a Scheduler root node.
|
|
func NewGenerator(ctx chasm.MutableContext, scheduler *Scheduler, invoker *Invoker) *Generator {
|
|
return &Generator{
|
|
GeneratorState: &schedulerpb.GeneratorState{
|
|
LastProcessedTime: nil,
|
|
},
|
|
Scheduler: chasm.ComponentPointerTo(ctx, scheduler),
|
|
}
|
|
}
|
|
|
|
func (g *Generator) LifecycleState(ctx chasm.Context) chasm.LifecycleState {
|
|
return chasm.LifecycleStateRunning
|
|
}
|