feat: add server provisioning system with Queue
- Add server-provision.ts for async server creation - Add SERVER_PROVISION_QUEUE with DLQ for reliability - Add cron job for auto-cleanup of pending orders (5min) - Add server delete confirmation with inline keyboard - Update types for server orders, images, and provisioning - Add server tables to schema (server_orders, server_instances) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -48,9 +48,11 @@ preview_id = "302ad556567447cbac49c20bded4eb7e"
|
||||
binding = "CLOUD_ORCHESTRATOR"
|
||||
service = "cloud-orchestrator"
|
||||
|
||||
# Cron Trigger: 매일 자정(KST) 실행 - 24시간 경과된 입금 대기 자동 취소
|
||||
# Cron Triggers:
|
||||
# - 매일 자정(KST): 24시간 경과된 입금 대기 자동 취소 + 정합성 검증
|
||||
# - 매 5분: pending 상태 서버 주문 자동 삭제 (5분 경과)
|
||||
[triggers]
|
||||
crons = ["0 15 * * *"] # UTC 15:00 = KST 00:00
|
||||
crons = ["0 15 * * *", "*/5 * * * *"] # UTC 15:00 = KST 00:00, 매 5분
|
||||
|
||||
# Secrets (wrangler secret put 으로 설정):
|
||||
# - BOT_TOKEN: Telegram Bot Token
|
||||
@@ -62,3 +64,21 @@ crons = ["0 15 * * *"] # UTC 15:00 = KST 00:00
|
||||
# - DEPOSIT_API_SECRET: Deposit API 인증 키 (namecheap-api 연동)
|
||||
# - DOMAIN_OWNER_ID: 도메인 관리 권한 Telegram ID (보안상 secrets 권장)
|
||||
# - DEPOSIT_ADMIN_ID: 예치금 관리 권한 Telegram ID (보안상 secrets 권장)
|
||||
|
||||
# Server Provision Queue
|
||||
[[queues.producers]]
|
||||
queue = "server-provision-queue"
|
||||
binding = "SERVER_PROVISION_QUEUE"
|
||||
|
||||
[[queues.consumers]]
|
||||
queue = "server-provision-queue"
|
||||
max_retries = 3
|
||||
max_batch_size = 10
|
||||
max_batch_timeout = 30
|
||||
max_concurrency = 5
|
||||
dead_letter_queue = "provision-dlq"
|
||||
|
||||
# Dead Letter Queue
|
||||
[[queues.consumers]]
|
||||
queue = "provision-dlq"
|
||||
max_retries = 0
|
||||
|
||||
Reference in New Issue
Block a user