- worker.go: add Redis fields, XADD on Enqueue, XREADGROUP BLOCK consumer loop, sweep compensation for delayed/failed jobs, DB-polling fallback when rdb is nil, XGroupCreateMkStream for idempotent consumer groups - config.go: extend WorkerConfig with stream_prefix, consumer_group, block_timeout_s, sweep_interval_s + defaults, env bindings, reloadable - validator.go: validate new worker Redis fields - bootstrap.go: fix concurrency bug (NewWorkerPoolWithOptions with Redis + cfg.Worker.Concurrency), reorder rdb init before worker pool - config.dev.yaml/config.prod.yaml: add worker Redis params - worker_test.go: 6 new miniredis tests (end-to-end, fallback, sweep, multi-consumer competition, group creation, Redis failure recovery) - config_test.go/reloader_test.go: adapt fixtures for new fields
24 lines
471 B
YAML
24 lines
471 B
YAML
# GoChat Development Environment Overrides
|
|
# Reference: Chatwoot config/environments/development.rb
|
|
|
|
server:
|
|
mode: "debug"
|
|
|
|
database:
|
|
name: "gochat_dev"
|
|
log_level: "info"
|
|
|
|
log:
|
|
level: "debug"
|
|
format: "console"
|
|
|
|
worker:
|
|
concurrency: 5
|
|
redis_stream_prefix: "gochat:jobs"
|
|
redis_consumer_group: "gochat-workers-dev"
|
|
redis_block_timeout_s: 5
|
|
redis_sweep_interval_s: 15 # shorter in dev for faster delayed-job pickup
|
|
|
|
redis:
|
|
channel_prefix: "gochat_dev"
|