縮短 PChome feeder 外部請求 timeout
Some checks failed
CD Pipeline / deploy (push) Has been cancelled

This commit is contained in:
OoO
2026-05-19 23:23:48 +08:00
parent 205b9ea3f6
commit 032ba2bbd3
3 changed files with 7 additions and 2 deletions

View File

@@ -25,6 +25,7 @@
import json
import logging
import os
import re
import time
from dataclasses import dataclass
@@ -41,6 +42,7 @@ MAX_SEARCH_TERMS = 3 # 每個 MOMO 商品最多嘗試幾組搜尋詞
BATCH_SIZE = 30 # 每批 DB 寫入筆數
RATE_DELAY = 0.8 # 每次 PChome 請求間隔(秒)
TTL_HOURS = 6 # competitor_prices 快取有效期
REQUEST_TIMEOUT = float(os.getenv("PCHOME_FEEDER_TIMEOUT", "12")) # 避免外部搜尋 API 長時間卡住排程
# ── Feeder 結果 ───────────────────────────────────────
@dataclass
@@ -721,7 +723,7 @@ class CompetitorPriceFeeder:
return FeederResult(0, 0, 0, 0, 0, 0.0)
from services.pchome_crawler import PChomeCrawler
crawler = PChomeCrawler(timeout=30, delay=RATE_DELAY)
crawler = PChomeCrawler(timeout=REQUEST_TIMEOUT, delay=RATE_DELAY)
logger.info(f"[Feeder] 開始抓取 {len(skus)} 支商品的 {label}")
@@ -908,7 +910,7 @@ class CompetitorPriceFeeder:
return FeederResult(0, 0, 0, 0, 0, 0.0)
from services.pchome_crawler import PChomeCrawler
crawler = PChomeCrawler(timeout=30, delay=RATE_DELAY)
crawler = PChomeCrawler(timeout=REQUEST_TIMEOUT, delay=RATE_DELAY)
requested_ids = [
str(item.get("competitor_product_id") or "").strip()