ソースを参照

service_api: run Playwright cookie refresh in thread executor to avoid blocking the event loop

ZiB 4 ヶ月 前
親
コミット
de3b0339a9
2 ファイル変更、2 行追加、2 行削除
  1. 1 1
      room_cal/service_api/_airbnb.py
  2. 1 1
      room_cal/service_api/_booking.py

+ 1 - 1
room_cal/service_api/_airbnb.py

@@ -110,7 +110,7 @@ class _AirbnbClient:
   async def _auto_refresh(self) -> None:
   async def _auto_refresh(self) -> None:
     _log.warning('Airbnb session may be expired — launching headless Playwright')
     _log.warning('Airbnb session may be expired — launching headless Playwright')
     try:
     try:
-      refresh_airbnb_cookies()
+      await asyncio.get_running_loop().run_in_executor(None, refresh_airbnb_cookies)
       self._reload_from_env()
       self._reload_from_env()
     except ServiceAuthError:
     except ServiceAuthError:
       mark_stale('airbnb')
       mark_stale('airbnb')

+ 1 - 1
room_cal/service_api/_booking.py

@@ -258,7 +258,7 @@ class _BookingClient:
       return
       return
     _log.warning('HTTP refresh failed — launching headless Playwright')
     _log.warning('HTTP refresh failed — launching headless Playwright')
     try:
     try:
-      refresh_booking_cookies()
+      await asyncio.get_running_loop().run_in_executor(None, refresh_booking_cookies)
       self._reload_from_env()
       self._reload_from_env()
     except ServiceAuthError:
     except ServiceAuthError:
       mark_stale('booking')
       mark_stale('booking')