Documentation
¶
Overview ¶
Package riverqueue implements background job processing for document completion events using River, a PostgreSQL-native job queue. See docs/backend/worker-queue-guide.md for architecture and flow diagrams.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DocumentCompletedArgs ¶
type DocumentCompletedArgs struct {
DocumentID string `json:"document_id"`
}
DocumentCompletedArgs are the arguments for the document completed job.
func (DocumentCompletedArgs) InsertOpts ¶
func (DocumentCompletedArgs) InsertOpts() river.InsertOpts
InsertOpts returns insert-time options including deduplication.
func (DocumentCompletedArgs) Kind ¶
func (DocumentCompletedArgs) Kind() string
Kind returns the unique job kind identifier.
type DocumentCompletedWorker ¶
type DocumentCompletedWorker struct {
river.WorkerDefaults[DocumentCompletedArgs]
// contains filtered or unexported fields
}
DocumentCompletedWorker processes document completion jobs.
func (*DocumentCompletedWorker) Timeout ¶
func (w *DocumentCompletedWorker) Timeout(_ *river.Job[DocumentCompletedArgs]) time.Duration
Timeout returns the maximum duration for processing a single job.
func (*DocumentCompletedWorker) Work ¶
func (w *DocumentCompletedWorker) Work(ctx context.Context, job *river.Job[DocumentCompletedArgs]) (retErr error)
Work executes the document completion handler with defensive panic recovery.
type Notifier ¶
type Notifier struct {
// contains filtered or unexported fields
}
Notifier implements port.DocumentCompletionNotifier using River. It persists the document update and enqueues the completion job atomically within the same PostgreSQL transaction.
type RiverService ¶
type RiverService struct {
// contains filtered or unexported fields
}
RiverService manages the River client lifecycle and exposes the notifier.
func New ¶
func New( ctx context.Context, pool *pgxpool.Pool, cfg config.WorkerConfig, handler port.DocumentCompletedHandler, docUpdater documentUpdater, ) (*RiverService, error)
New creates a RiverService: runs migrations, registers the worker, and builds the River client. When cfg.Enabled is false the client operates in insert-only mode (no queue processing).
func (*RiverService) Notifier ¶
func (r *RiverService) Notifier() port.DocumentCompletionNotifier
Notifier returns the DocumentCompletionNotifier for use by the document service.