feat: RabbitMQ 인프라 설정 (Exchange/Queue) (#102) #103
No reviewers
SPMS/Owners
Labels
No Label
Priority
High
Priority
Low
Priority
Medium
Priority
Non
Priority
Urgent
Status
Available
Status
Done
Status
In Progress
Type
Bug
Type
Chore
Type
Design
Type
Documentation
Type
Feature
Type
Improvement
Type
Refactor
Type
Research
Type
Task
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: SPMS/SPMS_API#103
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "feature/#102-rabbitmq-infrastructure"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 작업 요약
🔗 관련 이슈 (Related Issues)
Closes #102
🛠️ 작업 내용 (Changes)
SPMS.Application/Settings/RabbitMQSettings.cs— RabbitMQ 설정 POCO (Exchange, Queue, TTL 등)SPMS.Application/DTOs/Push/PushMessageDto.cs— 일반 발송 메시지 스키마SPMS.Application/DTOs/Push/PushTargetDto.cs— 발송 대상 정보 (device_ids, tags, all, file_id)SPMS.Application/DTOs/Push/ScheduleMessageDto.cs— 예약 발송 메시지 스키마SPMS.Application/Interfaces/IPushQueueService.cs— 큐 발행 인터페이스SPMS.Infrastructure/Messaging/RabbitMQConnection.cs— 연결 관리 (AutomaticRecovery, Heartbeat 60s)SPMS.Infrastructure/Messaging/RabbitMQInitializer.cs— IHostedService로 Exchange/Queue 자동 선언SPMS.Infrastructure/Messaging/PushQueueService.cs— 큐 발행 구현 (Persistent, JSON)SPMS.Infrastructure/DependencyInjection.cs— RabbitMQ DI 등록SPMS.Infrastructure/SPMS.Infrastructure.csproj— RabbitMQ.Client 7.2.0 + 의존 패키지 추가SPMS.API/appsettings.json— RabbitMQ 설정 섹션 확장📢 리뷰어 참고 사항 (To Reviewers)
RabbitMQInitializer가 IHostedService로 앱 시작 시 Exchange/Queue를 자동 선언spms.push.exchange(Direct, Durable), Queue 2개 (push, schedule) TTL 24시간PushQueueService는 메시지 발행 시 채널을 생성하여 사용 (초기 구현, 추후 최적화 가능)PushTargetDto.Value는JsonElement?로 유연하게 처리 (배열, 숫자, null 모두 수용)✅ 체크리스트 (Self Checklist)
📸 스크린샷 / 테스트 로그 (Screenshots/Logs)