package application

import "github.com/go-arrower/arrower/contexts/admin/internal/application"

Index

Variables

var ErrDeleteJobFailed = errors.New("delete job failed")
var ErrGetQueueFailed = errors.New("get queue failed")
var ErrGetWorkersFailed = errors.New("get workers failed")
var ErrJobTypesForQueueFailed = errors.New("job types for queue failed")
var ErrListAllQueuesFailed = errors.New("list all queues failed")
var ErrPruneJobHistoryFailed = errors.New("prune job history failed")
var ErrScheduleJobsFailed = errors.New("schedule jobs failed")
var ErrVacuumJobTableFailed = errors.New("vacuum job table failed")

Functions

func NewDeleteJobCommandHandler

func NewDeleteJobCommandHandler(repo jobs.Repository) app.Command[DeleteJobCommand]

func NewGetQueueQueryHandler

func NewGetQueueQueryHandler(repo jobs.Repository) app.Query[GetQueueQuery, GetQueueResponse]

func NewGetWorkersQueryHandler

func NewGetWorkersQueryHandler(repo jobs.Repository) app.Query[GetWorkersQuery, GetWorkersResponse]

func NewJobTypesForQueueQueryHandler

func NewJobTypesForQueueQueryHandler(queries *models.Queries) app.Query[JobTypesForQueueQuery, []jobs.JobType]

func NewListAllQueuesQueryHandler

func NewListAllQueuesQueryHandler(repo jobs.Repository) app.Query[ListAllQueuesQuery, ListAllQueuesResponse]

func NewPruneJobHistoryRequestHandler

func NewPruneJobHistoryRequestHandler(
	queries *models.Queries,
) app.Request[PruneJobHistoryRequest, PruneJobHistoryResponse]

func NewScheduleJobsCommandHandler

func NewScheduleJobsCommandHandler(queries *models.Queries) app.Command[ScheduleJobsCommand]

func NewVacuumJobTableRequestHandler

func NewVacuumJobTableRequestHandler(db *pgxpool.Pool) app.Request[VacuumJobTableRequest, VacuumJobTableResponse]

Types

type App

App is a dependency injection container.

type DeleteJobCommand

type DeleteJobCommand struct {
	JobID string
}

type GetQueueQuery

type GetQueueQuery struct {
	QueueName jobs.QueueName
}

type GetQueueResponse

type GetQueueResponse struct {
	Jobs []jobs.Job
	Kpis jobs.QueueKPIs
}

type GetWorkersQuery

type GetWorkersQuery struct{}

type GetWorkersResponse

type GetWorkersResponse struct {
	Pool      []jobs.WorkerPool
	Schedules []jobs.Schedule
}

type JobPayload

type JobPayload struct {
	// Carrier contains the otel tracing information.
	Carrier propagation.MapCarrier `json:"carrier"`
	// JobData is the actual data as string instead of []byte,
	// so that it is readable more easily when assessing it via psql directly.
	JobData interface{} `json:"jobData"`
}

type JobTypesForQueueQuery

type JobTypesForQueueQuery struct {
	Queue jobs.QueueName
}

type ListAllQueuesQuery

type ListAllQueuesQuery struct{}

type ListAllQueuesResponse

type ListAllQueuesResponse struct {
	QueueStats map[jobs.QueueName]jobs.QueueStats
}

type PruneJobHistoryRequest

type PruneJobHistoryRequest struct {
	Days int
}

type PruneJobHistoryRequestHandler

type PruneJobHistoryRequestHandler app.Request[PruneJobHistoryRequest, PruneJobHistoryResponse]

type PruneJobHistoryResponse

type PruneJobHistoryResponse struct {
	Jobs    string
	History string
}

type ScheduleJobsCommand

type ScheduleJobsCommand struct {
	RunAt    time.Time
	Queue    string
	JobType  string
	Payload  string
	Count    int
	Priority int16
}

type VacuumJobTableRequest

type VacuumJobTableRequest struct {
	Table string
}

type VacuumJobTableResponse

type VacuumJobTableResponse struct {
	Jobs    string
	History string
}

Source Files

app.go delete-job.usecase.go get-job-types-for-queue.usecase.go get-queue.usecase.go get-workers.usecase.go list-all-queues.go prune-job-history.usecase.go schedule-new-job.usecase.go vacuum-job-table.usecase.go

Version
v0.0.0-20250311203644-ab26c1152cb4 (latest)
Published
Mar 11, 2025
Platform
linux/amd64
Imports
14 packages
Last checked
9 minutes ago

Tools for package owners.