snp-batch-validation/src/main/resources/application.yml

106 lines
2.9 KiB
YAML
Raw Normal View 히스토리

2025-10-22 13:50:04 +09:00
spring:
application:
name: snp-batch
# PostgreSQL Database Configuration
datasource:
url: jdbc:postgresql://211.208.115.83:5432/snpdb
2025-10-22 13:50:04 +09:00
username: snp
password: snp#8932
driver-class-name: org.postgresql.Driver
hikari:
maximum-pool-size: 10
minimum-idle: 5
connection-timeout: 30000
# JPA Configuration
jpa:
hibernate:
ddl-auto: update
show-sql: false
2025-10-22 13:50:04 +09:00
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
format_sql: false
2025-10-22 13:50:04 +09:00
default_schema: public
# Batch Configuration
batch:
jdbc:
table-prefix: "snp_data.batch_"
2025-10-22 13:50:04 +09:00
initialize-schema: never # Changed to 'never' as tables already exist
job:
enabled: false # Prevent auto-run on startup
# Thymeleaf Configuration
thymeleaf:
cache: false
prefix: classpath:/templates/
suffix: .html
# Quartz Scheduler Configuration - Using JDBC Store for persistence
quartz:
job-store-type: jdbc # JDBC store for schedule persistence
jdbc:
initialize-schema: always # Create Quartz tables if not exist
properties:
org.quartz.scheduler.instanceName: SNPBatchScheduler
org.quartz.scheduler.instanceId: AUTO
org.quartz.threadPool.threadCount: 10
org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
org.quartz.jobStore.tablePrefix: QRTZ_
org.quartz.jobStore.isClustered: false
org.quartz.jobStore.misfireThreshold: 60000
# Server Configuration
server:
port: 8081
2025-10-22 13:50:04 +09:00
servlet:
context-path: /snp-api
2025-10-22 13:50:04 +09:00
# Actuator Configuration
management:
endpoints:
web:
exposure:
include: health,info,metrics,prometheus,batch
endpoint:
health:
show-details: always
# Logging Configuration (logback-spring.xml에서 상세 설정)
2025-10-22 13:50:04 +09:00
logging:
config: classpath:logback-spring.xml
2025-10-22 13:50:04 +09:00
# Custom Application Properties
app:
batch:
chunk-size: 1000
api:
url: https://api.example.com/data
timeout: 30000
ship-api:
url: https://shipsapi.maritime.spglobal.com
username: 7cc0517d-5ed6-452e-a06f-5bbfd6ab6ade
password: 2LLzSJNqtxWVD8zC
ais-api:
url: https://aisapi.maritime.spglobal.com
webservice-api:
url: https://webservices.maritime.spglobal.com
2025-10-22 13:50:04 +09:00
schedule:
enabled: true
cron: "0 0 * * * ?" # Every hour
# AIS Target 배치 설정
ais-target:
since-seconds: 60 # API 조회 범위 (초)
chunk-size: 5000 # 배치 청크 크기
schedule:
cron: "15 * * * * ?" # 매 분 15초 실행
partition:
months-ahead: 2 # 미리 생성할 파티션 개월 수
# AIS Target 캐시 설정
ais-target-cache:
ttl-minutes: 120 # 캐시 TTL (분) - 2시간
max-size: 300000 # 최대 캐시 크기 - 30만 건