Files
tasks/chasm/lib/scheduler/library.go
Lina JodoinandGitHub 4c140933cf [Scheduled Actions] CHASM Scheduler (#8255)
## 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.
2025-09-02 19:50:45 +00:00

80 lines
2.1 KiB
Go

package scheduler
import (
"go.temporal.io/server/chasm"
"go.uber.org/fx"
)
type (
Library struct {
fx.In
chasm.UnimplementedLibrary
SchedulerIdleTaskExecutor *SchedulerIdleTaskExecutor
GeneratorTaskExecutor *GeneratorTaskExecutor
InvokerExecuteTaskExecutor *InvokerExecuteTaskExecutor
InvokerProcessBufferTaskExecutor *InvokerProcessBufferTaskExecutor
BackfillerTaskExecutor *BackfillerTaskExecutor
}
)
func NewLibrary(
SchedulerIdleTaskExecutor *SchedulerIdleTaskExecutor,
GeneratorTaskExecutor *GeneratorTaskExecutor,
InvokerExecuteTaskExecutor *InvokerExecuteTaskExecutor,
InvokerProcessBufferTaskExecutor *InvokerProcessBufferTaskExecutor,
BackfillerTaskExecutor *BackfillerTaskExecutor,
) *Library {
return &Library{
SchedulerIdleTaskExecutor: SchedulerIdleTaskExecutor,
GeneratorTaskExecutor: GeneratorTaskExecutor,
InvokerExecuteTaskExecutor: InvokerExecuteTaskExecutor,
InvokerProcessBufferTaskExecutor: InvokerProcessBufferTaskExecutor,
BackfillerTaskExecutor: BackfillerTaskExecutor,
}
}
func (l *Library) Name() string {
return "scheduler"
}
func (l *Library) Components() []*chasm.RegistrableComponent {
return []*chasm.RegistrableComponent{
chasm.NewRegistrableComponent[*Scheduler]("scheduler"),
chasm.NewRegistrableComponent[*Generator]("generator"),
chasm.NewRegistrableComponent[*Invoker]("invoker"),
chasm.NewRegistrableComponent[*Backfiller]("backfiller"),
}
}
func (l *Library) Tasks() []*chasm.RegistrableTask {
return []*chasm.RegistrableTask{
chasm.NewRegistrablePureTask(
"idle",
l.SchedulerIdleTaskExecutor,
l.SchedulerIdleTaskExecutor,
),
chasm.NewRegistrablePureTask(
"generate",
l.GeneratorTaskExecutor,
l.GeneratorTaskExecutor,
),
chasm.NewRegistrableSideEffectTask(
"execute",
l.InvokerExecuteTaskExecutor,
l.InvokerExecuteTaskExecutor,
),
chasm.NewRegistrablePureTask(
"processBuffer",
l.InvokerProcessBufferTaskExecutor,
l.InvokerProcessBufferTaskExecutor,
),
chasm.NewRegistrablePureTask(
"backfill",
l.BackfillerTaskExecutor,
l.BackfillerTaskExecutor,
),
}
}