SPMS_API/SPMS.Application/Interfaces/IBulkJobStore.cs
seonkyu.kim 830cbf2edc feat: 대용량 발송/상태조회/취소 API 구현 (#130)
- POST /v1/in/push/send/bulk: CSV 대량 발송 (비동기)
- POST /v1/in/push/job/status: Job 상태 조회
- POST /v1/in/push/job/cancel: Job 취소
- BulkJobStore: Redis Hash 기반 Job 상태 관리
- PushWorker: Job 진행률 추적 및 취소 체크

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:55:39 +09:00

16 lines
741 B
C#

using SPMS.Application.DTOs.Push;
namespace SPMS.Application.Interfaces;
public interface IBulkJobStore
{
Task<string> CreateJobAsync(long serviceId, int totalCount, CancellationToken ct = default);
Task<BulkJobInfo?> GetJobAsync(string jobId, CancellationToken ct = default);
Task SetProcessingAsync(string jobId, CancellationToken ct = default);
Task IncrementSentAsync(string jobId, CancellationToken ct = default);
Task IncrementFailedAsync(string jobId, CancellationToken ct = default);
Task TryCompleteAsync(string jobId, CancellationToken ct = default);
Task<bool> IsCancelledAsync(string jobId, CancellationToken ct = default);
Task<int> CancelAsync(string jobId, CancellationToken ct = default);
}