diff options
Diffstat (limited to 'app/api/cron')
| -rw-r--r-- | app/api/cron/tags/start/route.ts | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/app/api/cron/tags/start/route.ts b/app/api/cron/tags/start/route.ts index b506b9a3..3312aad8 100644 --- a/app/api/cron/tags/start/route.ts +++ b/app/api/cron/tags/start/route.ts @@ -13,16 +13,20 @@ const syncJobs = new Map<string, { error?: string; progress?: number; packageId?: number; + mode?: string }>(); export async function POST(request: NextRequest) { try { // 요청 데이터 가져오기 let packageId: number | undefined; - + let mode: string | undefined; + try { const body = await request.json(); packageId = body.packageId; + mode = body.mode; // 모드 정보 추출 + } catch (error) { // 요청 본문이 없거나 JSON이 아닌 경우, URL 파라미터 확인 const searchParams = request.nextUrl.searchParams; @@ -30,6 +34,7 @@ export async function POST(request: NextRequest) { if (packageIdParam) { packageId = parseInt(packageIdParam, 10); } + mode = searchParams.get('mode') || undefined; } // 고유 ID 생성 @@ -39,7 +44,8 @@ export async function POST(request: NextRequest) { syncJobs.set(syncId, { status: 'queued', startTime: new Date(), - packageId + packageId, + mode }); // 비동기 작업 시작 (백그라운드에서 실행) @@ -74,6 +80,8 @@ async function processTagImport(syncId: string) { try { const jobInfo = syncJobs.get(syncId)!; const packageId = jobInfo.packageId; + const mode = jobInfo.mode; // 모드 정보 추출 + // 상태 업데이트: 처리 중 syncJobs.set(syncId, { @@ -98,7 +106,7 @@ async function processTagImport(syncId: string) { }; // 실제 태그 가져오기 실행 - const result = await importTagsFromSEDP(packageId, updateProgress); + const result = await importTagsFromSEDP(packageId, updateProgress, mode); // 명시적으로 캐시 무효화 revalidateTag(`tags-${packageId}`); |
