1.4 KiB
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, defaultcrud_queue)RABBIT_DURABLE(defaulttrue)RABBIT_PREFETCH(default1)REQUEUE_ON_ERROR(defaulttrue)
Postgres:
DATABASE_URL(preferred)- or
PGHOST,PGPORT(default 5432),PGUSER,PGPASSWORD,PGDATABASE(defaultpostgres),PGSSLMODE(defaultrequire) PG_TABLE(defaultnubes_test_table)
Message format
JSON payload:
{"action":"create","text":"hello","id":1}
Fields:
action:create|update|deleteid: required forupdateanddeletetext: used bycreateandupdate
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> .