Skip to content

job-scheduler-api

job-scheduler-api (branch: prod) เป็น service ชื่อทั่วไปว่า "job scheduler" แต่เนื้อในปัจจุบันมี cron job ที่ทำงานจริงอยู่เพียง หนึ่งงานเดียว — เรียก endpoint สรุปยอด incident ของอีก service (incident-management-api) วันละครั้ง ไม่มี HTTP controller ของตัวเองที่ทำ business logic ใด ๆ (AppController เป็น root ว่างเปล่า) — ดู 02-core-pipeline และ 04-scorecard สำหรับความคลาดเคลื่อนระหว่างชื่อ repo กับสิ่งที่โค้ดทำจริง

Stack และเวอร์ชัน

ส่วนค่าหลักฐาน
FrameworkNestJS ^9.0.0job-scheduler-api/package.json:27-29 (branch: prod)
ORMTypeORM ^0.3.10 + mysql2 (import ไว้ใน AppModule แต่ ไม่ได้ถูกเรียกใช้จริง — ดู QUAL-JOBSCHED-01)job-scheduler-api/src/app.module.ts:1-23
Cron@nestjs/schedule ^2.2.0job-scheduler-api/package.json:32
AuthPassport JWT ผ่าน guard เดียวกับ template ที่ใช้ทั่วแพลตฟอร์มjob-scheduler-api/libs/jwt/jwt-auth.guard.ts
Swagger@nestjs/swagger ^6.1.3job-scheduler-api/package.json:33

Entry point

src/main.ts — bootstrap เหมือน template กลาง: global prefix {BASE_PATH}api/v1, JwtAuthGuard เป็น global guard, Swagger ที่ {BASE_PATH}docs (job-scheduler-api/src/main.ts:12-41, branch: prod)

พอร์ตและ path

ตัวแปรค่าหลักฐาน
PORT9900job-scheduler-api/.env:4 (branch: prod)
BASE_PATHbenefit-api/ไม่ตรงกับชื่อ service (ดู QUAL-JOBSCHED-02)job-scheduler-api/.env:3
DB_NAMEbenefit (host 10.188.128.58)job-scheduler-api/.env:6-11

Deploy artifact

Dockerfile multi-stage บน node:16-alpine (developproduction), EXPOSE 3000 (ไม่ตรงกับ PORT=9900 ที่ตั้งจริงใน .env — ค่า EXPOSE เป็น documentation เฉย ๆ ไม่ผูกกับ listen port จริง) (job-scheduler-api/Dockerfile:1-26, branch: prod) docker-compose.yml map พอร์ต 9900:9900 และเข้าร่วม network ภายนอกชื่อ vtrc-api_default ร่วมกับบริการอื่นในแพลตฟอร์ม (job-scheduler-api/docker-compose.yml:8-9,18-22)

สารบัญ