diff --git a/app/Commands/NaverWorker.php b/app/Commands/NaverWorker.php index b002ae6..0e73b0e 100644 --- a/app/Commands/NaverWorker.php +++ b/app/Commands/NaverWorker.php @@ -14,19 +14,35 @@ class NaverWorker extends BaseCommand public function run(array $params) { $redis = new \Redis(); - $redis->connect('redis', 6379); - $redis->select(10); - - CLI::write('๐ŸŸข Naver Worker running...'); + try { + $redis->connect('redis', 6379); + $redis->select(9); + CLI::write(CLI::color('๐ŸŸข Naver Worker running...', 'green')); + } catch (\Exception $e) { + CLI::error("Redis ์—ฐ๊ฒฐ ๋ถˆ๊ฐ€: " . $e->getMessage()); + return; + } while (true) { - // Redis์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜ฌ ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ (Blocking Pop) - // 'naver:raw_queue'๋Š” api_receiver.php์—์„œ lPushํ•œ ์ด๋ฆ„๊ณผ ๊ฐ™์•„์•ผ ํ•จ - $result = $redis->brPop(['naver:raw_queue'], 30); - - if ($result) { - $payload = json_decode($result[1], true); - $this->processTask($payload); + try { + // 'brPop'์€ [ํ์ด๋ฆ„, ๋ฐ์ดํ„ฐ] ํ˜•ํƒœ์˜ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. + $result = $redis->brPop(['naver:raw_queue'], 30); + + $result = $redis->brPop(['naver:raw_queue'], 30); + if ($result) { + try { + $payload = json_decode($result[1], true); + $this->processTask($payload); // ์‹ค์ œ DB ์ €์žฅ ๋“ฑ + } catch (\Exception $e) { + // ์ฒ˜๋ฆฌ ์‹คํŒจ ์‹œ ๋‹ค์‹œ ํ์— ๋„ฃ์–ด์„œ ๋‚˜์ค‘์— ์žฌ์‹œ๋„ํ•˜๊ฒŒ ํ•จ + $redis->lPush('naver:raw_queue', $result[1]); + CLI::error("์ฒ˜๋ฆฌ ์‹คํŒจ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ์— ๋‹ค์‹œ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค."); + } + } + } catch (\Exception $e) { + CLI::error("Worker Loop Error: " . $e->getMessage()); + // ๋ฃจํ”„๊ฐ€ ๋„ˆ๋ฌด ๋นจ๋ฆฌ ๋Œ๋ฉฐ ์—๋Ÿฌ๋ฅผ ๋ฟœ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ + sleep(1); } } } @@ -35,6 +51,6 @@ class NaverWorker extends BaseCommand { // ์—ฌ๊ธฐ์„œ DB ๋ชจ๋ธ(ConfirmModel)์„ ๋ถˆ๋Ÿฌ์™€ ์ €์žฅํ•˜๊ณ  // CURL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„ค์ด๋ฒ„ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋กœ์ง์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. - CLI::write("Processing data received at: " . $payload['received_at']); + CLI::write("Processing: " . ($payload['request_data']['articleNumber'] ?? 'Unknown')); } } \ No newline at end of file diff --git a/app/Config/Autoload.php b/app/Config/Autoload.php index c7bd66e..829cd3f 100644 --- a/app/Config/Autoload.php +++ b/app/Config/Autoload.php @@ -88,5 +88,5 @@ class Autoload extends AutoloadConfig * * @var list */ - public $helpers = ['url']; + public $helpers = ['log','url']; } diff --git a/app/Helpers/log_helper.php b/app/Helpers/log_helper.php new file mode 100644 index 0000000..50c982e --- /dev/null +++ b/app/Helpers/log_helper.php @@ -0,0 +1,23 @@ +