rabbit-worker/README.md

1.4 KiB

Rabbit Worker (Go)

Consumes CRUD messages from RabbitMQ and writes to Postgres.

Комментарий: HTTP-эндпоинт нужен только для health-check, остальная логика работает через RabbitMQ.

Environment variables

RabbitMQ:

  • AMQP_URL (preferred), example: amqp://user:pass@host:5672/vhost
  • or RABBIT_HOST, RABBIT_PORT (default 5672), RABBIT_USER, RABBIT_PASSWORD, RABBIT_VHOST (default /)
  • RABBIT_QUEUES (comma-separated, default crud_queue)
  • RABBIT_DURABLE (default true)
  • RABBIT_PREFETCH (default 1)
  • REQUEUE_ON_ERROR (default true)

Postgres:

  • DATABASE_URL (preferred)
  • or PGHOST, PGPORT (default 5432), PGUSER, PGPASSWORD, PGDATABASE (default postgres), PGSSLMODE (default require)
  • PG_TABLE (default nubes_test_table)

Message format

JSON payload:

{"action":"create","text":"hello","id":1}

Fields:

  • action: create | update | delete
  • id: required for update and delete
  • text: used by create and update

If the payload is not JSON, it is treated as create with body as text.

Примечание: сообщения без id для update/delete считаются некорректными и отбрасываются.

Build

cd /home/naeel/terraform/PROD_STAND/RABBIT/rabbit-worker

docker build -t <registry>/<image>:<tag> .