hkvideo_job.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from datetime import datetime
  4. from sqlalchemy.orm import Session
  5. from utils import *
  6. from utils.redis_util import *
  7. from models import *
  8. from exceptions import *
  9. from database import get_db_local
  10. from extensions import logger
  11. import traceback
  12. import time
  13. from utils import hk_video_api
  14. def proc():
  15. lock_key = "hkvideo_job_proc"
  16. if redis_lock(lock_key):
  17. logger.info(datetime.now())
  18. db = get_db_local()
  19. refresh_hkvideo(db)
  20. db.close()
  21. redis_unlock(lock_key)
  22. def refresh_hkvideo(db: Session):
  23. rows = db.query(VideoJob).order_by(VideoJob.update_time.asc()).limit(200).all()
  24. for row in rows:
  25. video_code = row.video_code
  26. status = 9
  27. time.sleep(0.01)
  28. try:
  29. data = hk_video_api.indexCode(video_code)
  30. # print(video_code, data)
  31. if data is not None:
  32. status = data['status']
  33. except Exception as e:
  34. traceback.print_exc()
  35. row.status = status
  36. row.update_time = datetime.now()
  37. db.commit()
  38. update_assis_video_table(video_code, status, db)
  39. def update_assis_video_table(video_code: str, status: int, db: Session) -> None:
  40. pass