Files
tasks/chasm/lib/scheduler/library.go
zeekay 5a601d081b rebrand: go.temporal.io/server -> github.com/hanzoai/tasks
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).
2026-03-19 10:36:40 -07:00

91 lines
2.6 KiB
Go

package scheduler
import (
"github.com/hanzoai/tasks/chasm"
"github.com/hanzoai/tasks/chasm/lib/scheduler/gen/schedulerpb/v1"
"google.golang.org/grpc"
)
type (
Library struct {
chasm.UnimplementedLibrary
handler *handler
SchedulerIdleTaskExecutor *SchedulerIdleTaskExecutor
GeneratorTaskExecutor *GeneratorTaskExecutor
InvokerExecuteTaskExecutor *InvokerExecuteTaskExecutor
InvokerProcessBufferTaskExecutor *InvokerProcessBufferTaskExecutor
BackfillerTaskExecutor *BackfillerTaskExecutor
}
)
func NewLibrary(
handler *handler,
SchedulerIdleTaskExecutor *SchedulerIdleTaskExecutor,
GeneratorTaskExecutor *GeneratorTaskExecutor,
InvokerExecuteTaskExecutor *InvokerExecuteTaskExecutor,
InvokerProcessBufferTaskExecutor *InvokerProcessBufferTaskExecutor,
BackfillerTaskExecutor *BackfillerTaskExecutor,
) *Library {
return &Library{
handler: handler,
SchedulerIdleTaskExecutor: SchedulerIdleTaskExecutor,
GeneratorTaskExecutor: GeneratorTaskExecutor,
InvokerExecuteTaskExecutor: InvokerExecuteTaskExecutor,
InvokerProcessBufferTaskExecutor: InvokerProcessBufferTaskExecutor,
BackfillerTaskExecutor: BackfillerTaskExecutor,
}
}
func (l *Library) Name() string {
return chasm.SchedulerLibraryName
}
func (l *Library) Components() []*chasm.RegistrableComponent {
return []*chasm.RegistrableComponent{
chasm.NewRegistrableComponent[*Scheduler](
chasm.SchedulerComponentName,
chasm.WithBusinessIDAlias("ScheduleId"),
chasm.WithSearchAttributes(executionStatusSearchAttribute),
),
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,
),
}
}
func (l *Library) RegisterServices(server *grpc.Server) {
server.RegisterService(&schedulerpb.SchedulerService_ServiceDesc, l.handler)
}