mirror of
https://github.com/versia-pub/versia-go.git
synced 2026-03-13 04:29:15 +01:00
refactor: workers
This commit is contained in:
parent
02ad720439
commit
8fa44e5f72
20 changed files with 764 additions and 465 deletions
|
|
@ -2,6 +2,7 @@ package service
|
|||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/versia-pub/versia-go/internal/repository"
|
||||
"github.com/versia-pub/versia-go/pkg/versia"
|
||||
|
|
@ -57,7 +58,7 @@ type InstanceMetadataService interface {
|
|||
}
|
||||
|
||||
type TaskService interface {
|
||||
ScheduleTask(ctx context.Context, type_ string, data any) error
|
||||
ScheduleNoteTask(ctx context.Context, type_ string, data any) error
|
||||
}
|
||||
|
||||
type RequestSigner interface {
|
||||
|
|
|
|||
|
|
@ -2,17 +2,18 @@ package svc_impls
|
|||
|
||||
import (
|
||||
"context"
|
||||
"slices"
|
||||
|
||||
"github.com/versia-pub/versia-go/internal/repository"
|
||||
"github.com/versia-pub/versia-go/internal/service"
|
||||
task_dtos "github.com/versia-pub/versia-go/internal/task/dtos"
|
||||
"github.com/versia-pub/versia-go/pkg/versia"
|
||||
"slices"
|
||||
|
||||
"git.devminer.xyz/devminer/unitel"
|
||||
"github.com/go-logr/logr"
|
||||
"github.com/google/uuid"
|
||||
"github.com/versia-pub/versia-go/internal/api_schema"
|
||||
"github.com/versia-pub/versia-go/internal/entity"
|
||||
"github.com/versia-pub/versia-go/internal/tasks"
|
||||
)
|
||||
|
||||
var _ service.NoteService = (*NoteServiceImpl)(nil)
|
||||
|
|
@ -69,7 +70,7 @@ func (i NoteServiceImpl) CreateNote(ctx context.Context, req api_schema.CreateNo
|
|||
return err
|
||||
}
|
||||
|
||||
if err := i.taskService.ScheduleTask(ctx, tasks.FederateNote, tasks.FederateNoteData{NoteID: n.ID}); err != nil {
|
||||
if err := i.taskService.ScheduleNoteTask(ctx, task_dtos.FederateNote, task_dtos.FederateNoteData{NoteID: n.ID}); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@ package svc_impls
|
|||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/versia-pub/versia-go/internal/service"
|
||||
"github.com/versia-pub/versia-go/internal/task"
|
||||
|
||||
"git.devminer.xyz/devminer/unitel"
|
||||
"github.com/go-logr/logr"
|
||||
|
|
@ -12,22 +14,22 @@ import (
|
|||
var _ service.TaskService = (*TaskServiceImpl)(nil)
|
||||
|
||||
type TaskServiceImpl struct {
|
||||
client *taskqueue.Client
|
||||
manager task.Manager
|
||||
|
||||
telemetry *unitel.Telemetry
|
||||
log logr.Logger
|
||||
}
|
||||
|
||||
func NewTaskServiceImpl(client *taskqueue.Client, telemetry *unitel.Telemetry, log logr.Logger) *TaskServiceImpl {
|
||||
func NewTaskServiceImpl(manager task.Manager, telemetry *unitel.Telemetry, log logr.Logger) *TaskServiceImpl {
|
||||
return &TaskServiceImpl{
|
||||
client: client,
|
||||
manager: manager,
|
||||
|
||||
telemetry: telemetry,
|
||||
log: log,
|
||||
}
|
||||
}
|
||||
|
||||
func (i TaskServiceImpl) ScheduleTask(ctx context.Context, type_ string, data any) error {
|
||||
func (i TaskServiceImpl) ScheduleNoteTask(ctx context.Context, type_ string, data any) error {
|
||||
s := i.telemetry.StartSpan(ctx, "function", "svc_impls/TaskServiceImpl.ScheduleTask")
|
||||
defer s.End()
|
||||
ctx = s.Context()
|
||||
|
|
@ -38,7 +40,7 @@ func (i TaskServiceImpl) ScheduleTask(ctx context.Context, type_ string, data an
|
|||
return err
|
||||
}
|
||||
|
||||
if err := i.client.Submit(ctx, t); err != nil {
|
||||
if err := i.manager.Notes().Submit(ctx, t); err != nil {
|
||||
i.log.Error(err, "Failed to schedule task", "type", type_, "taskID", t.ID)
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue