pkg/cmd/roachprod-centralized/repositories/tasks/cockroachdb/README.md
This package implements a CockroachDB-backed tasks repository for the roachprod-centralized service.
Add database configuration to your config file or environment variables:
database:
type: cockroachdb
url: "postgresql://user:password@localhost:26257/roachprod?sslmode=require"
max_conns: 10
max_idle_time: 300
Or using environment variables:
export ROACHPROD_DATABASE_TYPE=cockroachdb
export ROACHPROD_DATABASE_URL="postgresql://user:password@localhost:26257/roachprod?sslmode=require"
export ROACHPROD_DATABASE_MAX_CONNS=10
export ROACHPROD_DATABASE_MAX_IDLE_TIME=300
-- Apply the schema
\i pkg/cmd/roachprod-centralized/repositories/tasks/cockroachdb/schema.sql
UPDATE ... WHERE state = 'pending'consumer_id to track ownershipThe repository provides statistics via GetStatistics() showing task counts by state:
pending: Tasks waiting to be processedrunning: Tasks currently being processeddone: Successfully completed tasksfailed: Tasks that failed processingWhen creating the repository, you can configure:
repo := cockroachdb.NewTasksRepository(db, cockroachdb.Options{
BasePollingInterval: 100 * time.Millisecond, // Fast polling when busy
MaxPollingInterval: 5 * time.Second, // Slow polling when idle
TaskTimeout: 10 * time.Minute, // When to consider tasks stale
})