andykr1k commited on
Commit
5189742
·
1 Parent(s): 6e96e6d

Added server pings to keep others alive

Browse files
Files changed (1) hide show
  1. app.py +20 -1
app.py CHANGED
@@ -16,6 +16,7 @@ from fastapi.responses import StreamingResponse
16
  from dotenv import load_dotenv
17
  import json
18
  from apscheduler.schedulers.background import BackgroundScheduler
 
19
  from apscheduler.triggers.cron import CronTrigger
20
  import logging
21
  import pytz
@@ -260,14 +261,32 @@ async def health_check():
260
  """API endpoint for health check."""
261
  return {"status": "success", "message": "Recommendation service operational"}
262
 
 
 
 
 
 
 
 
 
 
 
 
 
263
  # Scheduler setup with Pacific Time Zone
264
  scheduler = BackgroundScheduler(timezone="America/Los_Angeles")
265
  scheduler.add_job(
266
  rebuild_model,
267
- trigger=CronTrigger(hour=3, minute=30), # Run at 3:30 AM Pacific Time daily
268
  id='daily_model_rebuild',
269
  replace_existing=True
270
  )
 
 
 
 
 
 
271
 
272
  @app.on_event("startup")
273
  async def startup_event():
 
16
  from dotenv import load_dotenv
17
  import json
18
  from apscheduler.schedulers.background import BackgroundScheduler
19
+ from apscheduler.triggers.interval import IntervalTrigger
20
  from apscheduler.triggers.cron import CronTrigger
21
  import logging
22
  import pytz
 
261
  """API endpoint for health check."""
262
  return {"status": "success", "message": "Recommendation service operational"}
263
 
264
+ def ping_servers():
265
+ notification_server_url = "https://andykrik-notificationservice.hf.space/"
266
+ film_recommender_server_url = "https://andykrik-filmrecommender.hf.space/"
267
+ try:
268
+ import requests
269
+ requests.get(notification_server_url)
270
+ requests.get(film_recommender_server_url)
271
+ logger.info("Pinged notification and film recommender servers successfully")
272
+ except requests.RequestException as e:
273
+ logger.error(f"Error pinging servers: {str(e)}")
274
+ raise
275
+
276
  # Scheduler setup with Pacific Time Zone
277
  scheduler = BackgroundScheduler(timezone="America/Los_Angeles")
278
  scheduler.add_job(
279
  rebuild_model,
280
+ trigger=CronTrigger(hour=3, minute=30),
281
  id='daily_model_rebuild',
282
  replace_existing=True
283
  )
284
+ scheduler.add_job(
285
+ ping_servers,
286
+ trigger=IntervalTrigger(hours=1),
287
+ id='hourly_model_ping',
288
+ replace_existing=True
289
+ )
290
 
291
  @app.on_event("startup")
292
  async def startup_event():