postgres

package
v0.0.0-...-c05720c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 24, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Store

type Store struct {
	// contains filtered or unexported fields
}

Store implements the storage.Store interface using PostgreSQL

func NewStore

func NewStore(pool *pgxpool.Pool) *Store

NewStore creates a new PostgreSQL store

func (*Store) ClaimNextTask

func (s *Store) ClaimNextTask(ctx context.Context, workerID string) (*models.Task, error)

ClaimNextTask atomically claims the next available task for processing Handles timeout recovery and respects next_run_at scheduling Prioritizes tasks with expired locks to prevent starvation

func (*Store) CompleteTask

func (s *Store) CompleteTask(ctx context.Context, taskID int64) error

CompleteTask marks a task as successfully completed

func (*Store) CreateTask

func (s *Store) CreateTask(ctx context.Context, req models.CreateTaskRequest) (*models.Task, error)

CreateTask creates a new task in the database

func (*Store) GetPool

func (s *Store) GetPool() *pgxpool.Pool

GetPool returns the underlying connection pool (for testing)

func (*Store) GetStats

func (s *Store) GetStats(ctx context.Context) (*models.TaskStatsResponse, error)

GetStats retrieves system statistics for dashboard

func (*Store) GetTask

func (s *Store) GetTask(ctx context.Context, id int64) (*models.Task, error)

GetTask retrieves a task by ID

func (*Store) GetTaskHistory

func (s *Store) GetTaskHistory(ctx context.Context, taskID int64) ([]models.TaskHistory, error)

GetTaskHistory retrieves the history of status changes for a task

func (*Store) InsertHistory

func (s *Store) InsertHistory(ctx context.Context, history models.TaskHistory) error

InsertHistory adds a new detailed event entry to task history

func (*Store) MarkTaskFailed

func (s *Store) MarkTaskFailed(ctx context.Context, taskID int64, errorMessage string) error

MarkTaskFailed permanently marks a task as failed (no more retries)

func (*Store) ScheduleRetry

func (s *Store) ScheduleRetry(ctx context.Context, taskID int64, errorMessage string) error

ScheduleRetry marks a task for retry with exponential backoff

func (*Store) UpdateTaskStatus

func (s *Store) UpdateTaskStatus(ctx context.Context, taskID int64, status models.TaskStatus, errorMessage *string) error

UpdateTaskStatus updates the status of a task

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL