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).
91 lines
2.6 KiB
Go
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)
|
|
}
|