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.
80 lines
2.1 KiB
Go
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,
|
|
),
|
|
}
|
|
}
|