connect($redisHost, 6379); $redis->select(10); echo "[*] Connected to Redis. Waiting for data...\n"; } catch (Exception $e) { die("Redis Connection Failed: " . $e->getMessage()); } while (true) { // 1. 입구 리스트에서 데이터 꺼내기 $item = $redis->brPop(['naver:queue'], 5); if (!$item) continue; $jsonStr = $item[1]; $data = json_decode($jsonStr, true); // 2. 파일 저장 $fileName = sprintf('%s_%s.json', $data['articleNumber'], $data['requestDatetime']); $filePath = $storagePath . '/' . $fileName; if (file_put_contents($filePath, $jsonStr) !== false) { echo "✅ [SUCCESS] File Saved: $fileName\n"; // 3. 파일 저장 성공 시에만 전송 큐로 넘김 (중요!) $redis->lPush('naver:worker_queue', $jsonStr); } else { echo "❌ [ERROR] Failed to save file: $fileName\n"; // 실패 시 다시 큐에 넣거나 로그 처리 } }