크론탭과 유사한 기능을 하는 HTTP 요청 스케줄러 서버
CRON_SCHEDULE: 스케줄 설정 (필수)REQUEST_TIMEOUT: 요청 타임아웃 시간 (초 단위, 기본값: 60)스케줄 설정 예시:
10s, POST, http://localhost:8080/api/v1/test
1m, GET, http://localhost:8080/api/v1/test
1h, GET, http://localhost:8080/api/v1/test
0 10 * * *, GET, http://localhost:8080/api/v1/test
docker build -t bdhwan/repeat-request:0.0.1 .
# 기본 타임아웃(60초) 사용
docker run -e CRON_SCHEDULE="10s, GET, http://example.com/api" bdhwan/repeat-request:0.0.1
# 커스텀 타임아웃(30초) 설정
docker run -e REQUEST_TIMEOUT=30 -e CRON_SCHEDULE="10s, GET, http://example.com/api" bdhwan/repeat-request:0.0.1
version: "3.8"
services:
repeat-request:
image: bdhwan/repeat-request:0.0.1
environment:
REQUEST_TIMEOUT: 60
CRON_SCHEDULE: |
10s, POST, http://localhost:8080/api/v1/test
1m, GET, http://localhost:8080/api/v1/test
1h, GET, http://localhost:8080/api/v1/test
0 10 * * *, GET, http://localhost:8080/api/v1/test
volumes:
- /etc/localtime:/etc/localtime:ro
deploy:
replicas: 1
placement:
constraints:
- node.platform.arch == x86_64
version: "3.8"
services:
repeat-request:
image: bdhwan/repeat-request:0.0.1
environment:
REQUEST_TIMEOUT: 60
CRON_SCHEDULE: |
10s, POST, http://localhost:8080/api/v1/test
1m, GET, http://localhost:8080/api/v1/test
1h, GET, http://localhost:8080/api/v1/test
0 10 * * *, GET, http://localhost:8080/api/v1/test
volumes:
- /etc/localtime:/etc/localtime:ro
logging:
driver: awslogs
options:
awslogs-group: /ecs/repeat-request
awslogs-region: ap-northeast-2
awslogs-stream-prefix: repeat-request
awslogs-create-group: "true"
deploy:
replicas: 1
placement:
constraints:
- node.platform.arch == x86_64
version: "3.8"
services:
repeat-request:
image: bdhwan/repeat-request:0.0.1
environment:
REQUEST_TIMEOUT: 60
CRON_SCHEDULE: |
10s, POST, http://localhost:8080/api/v1/test
1m, GET, http://localhost:8080/api/v1/test
1h, GET, http://localhost:8080/api/v1/test
0 10 * * *, GET, http://localhost:8080/api/v1/test
volumes:
- /etc/localtime:/etc/localtime:ro
deploy:
replicas: 1
placement:
constraints:
- node.platform.arch == x86_64
labels:
- "com.datadoghq.ad.logs"='[{"source": "nodejs", "service": "repeat-request"}]'
logging:
driver: awslogs
options:
awslogs-group: /aws/dockerswarm/repeat-request
awslogs-region: ap-northeast-2
awslogs-stream-prefix: repeat-request
awslogs-datetime-format: '%Y-%m-%dT%H:%M:%S.%fZ'
tag: "{{.Name}}/{{.ID}}"
# 의존성 설치
npm install
# 테스트 실행
npm test
# 커버리지 포함 테스트
npm run test:coverage
# Docker Compose로 통합 테스트
docker-compose -f docker-compose.test.yml up
[2024-01-01T12:00:00.000Z] GET http://example.com/api
[2024-01-01T12:00:00.500Z] 500ms GET http://example.com/api 200 OK
[2024-01-01T12:00:00.500Z] 500ms GET http://example.com/api ERROR Connection refused
Content type
Image
Digest
sha256:4bb3b1cf9…
Size
44.7 MB
Last updated
about 1 year ago
docker pull bdhwan/repeat-request