Add seed and seed-slow targets to Makefile and Taskfile for generating sample telegrams. Enhance documentation with usage examples for continuous slow seeding and configuration options. This allows for easier testing and monitoring of message delivery in development environments.

This commit is contained in:
windyboy
2025-11-19 17:14:22 +08:00
parent 5ad86d6296
commit ee7cac95f0
4 changed files with 184 additions and 0 deletions
+57
View File
@@ -120,6 +120,63 @@ clean: ## Clean build artifacts and coverage files
@echo "Cleaning build artifacts..."
@rm -rf $(BUILD_DIR) coverage
.PHONY: seed
seed: ## Generate sample telegrams (publishes to Core NATS by default)
@GO_ENV=dev \
NATS_URL=$${CAATSM_NATS_URL:-nats://localhost:4222} \
SUBJECT=$${CAATSM_NATS_SUBJECT:-telegram.serial} \
COUNT=$${COUNT:-10} \
CATEGORY=$${CATEGORY:-mixed} \
STATUS=$${STATUS:-random} \
bash -c ' \
set -euo pipefail; \
cmd=(go run ./cmd/seed-telegrams); \
if [ -n "$$NATS_URL" ]; then \
cmd+=("--nats-url" "$$NATS_URL"); \
fi; \
cmd+=("--subject" "$$SUBJECT" "--count" "$$COUNT" "--category" "$$CATEGORY" "--status" "$$STATUS"); \
exec "$${cmd[@]}" \
'
.PHONY: seed-slow
seed-slow: ## Continuously send telegrams slowly (until Ctrl-C). Uses JetStream by default. Configurable interval.
@echo "Starting slow continuous telegram seeding..."
@echo " Mode: $${MODE:-interval}"
@echo " Interval: $${INTERVAL_MIN:-2s} - $${INTERVAL_MAX:-5s}"
@echo " Category: $${CATEGORY:-mixed}"
@echo " Status: $${STATUS:-random}"
@echo " Press Ctrl-C to stop"
@echo ""
@GO_ENV=dev \
NATS_URL=$${CAATSM_NATS_URL:-nats://localhost:4222} \
SUBJECT=$${CAATSM_NATS_SUBJECT:-telegram.serial} \
CATEGORY=$${CATEGORY:-mixed} \
STATUS=$${STATUS:-random} \
MODE=$${MODE:-interval} \
INTERVAL_MIN=$${INTERVAL_MIN:-2s} \
INTERVAL_MAX=$${INTERVAL_MAX:-5s} \
USE_JS=$${USE_JS:-true} \
JS_STREAM=$${JS_STREAM:-TELEGRAM} \
JS_SUBJECT=$${JS_SUBJECT:-} \
bash -c ' \
set -euo pipefail; \
cmd=(go run ./cmd/seed-telegrams); \
if [ -n "$$NATS_URL" ]; then \
cmd+=("--nats-url" "$$NATS_URL"); \
fi; \
if [ "$$USE_JS" = "true" ]; then \
cmd+=("--jetstream"); \
if [ -n "$$JS_STREAM" ]; then \
cmd+=("--stream" "$$JS_STREAM"); \
fi; \
if [ -n "$$JS_SUBJECT" ]; then \
cmd+=("--js-subject" "$$JS_SUBJECT"); \
fi; \
fi; \
cmd+=("--subject" "$$SUBJECT" "--count" "0" "--category" "$$CATEGORY" "--status" "$$STATUS" "--mode" "$$MODE" "--interval-min" "$$INTERVAL_MIN" "--interval-max" "$$INTERVAL_MAX"); \
exec "$${cmd[@]}" \
'
.PHONY: help
help: ## Show this help
@printf "Makefile targets:\n"