Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

cache_file_svr.py 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import random
  2. import time
  3. import traceback
  4. from api.db.db_models import close_connection
  5. from api.db.services.task_service import TaskService
  6. from rag.settings import cron_logger
  7. from rag.utils.minio_conn import MINIO
  8. from rag.utils.redis_conn import REDIS_CONN
  9. def collect():
  10. doc_locations = TaskService.get_ongoing_doc_name()
  11. print(doc_locations)
  12. if len(doc_locations) == 0:
  13. time.sleep(1)
  14. return
  15. return doc_locations
  16. def main():
  17. locations = collect()
  18. if not locations:return
  19. print("TASKS:", len(locations))
  20. for kb_id, loc in locations:
  21. try:
  22. if REDIS_CONN.is_alive():
  23. try:
  24. key = "{}/{}".format(kb_id, loc)
  25. if REDIS_CONN.exist(key):continue
  26. file_bin = MINIO.get(kb_id, loc)
  27. REDIS_CONN.transaction(key, file_bin, 12 * 60)
  28. cron_logger.info("CACHE: {}".format(loc))
  29. except Exception as e:
  30. traceback.print_stack(e)
  31. except Exception as e:
  32. traceback.print_stack(e)
  33. if __name__ == "__main__":
  34. while True:
  35. main()
  36. close_connection()
  37. time.sleep(1)