您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

cache_file_svr.py 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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.utils.minio_conn import MINIO
  7. from rag.utils.redis_conn import REDIS_CONN
  8. def collect():
  9. doc_locations = TaskService.get_ongoing_doc_name()
  10. #print(tasks)
  11. if len(doc_locations) == 0:
  12. time.sleep(1)
  13. return
  14. return doc_locations
  15. def main():
  16. locations = collect()
  17. if not locations:return
  18. print("TASKS:", len(locations))
  19. for kb_id, loc in locations:
  20. try:
  21. if REDIS_CONN.is_alive():
  22. try:
  23. key = "{}/{}".format(kb_id, loc)
  24. if REDIS_CONN.exist(key):continue
  25. file_bin = MINIO.get(kb_id, loc)
  26. REDIS_CONN.transaction(key, file_bin, 12 * 60)
  27. print("CACHE:", loc)
  28. except Exception as e:
  29. traceback.print_stack(e)
  30. except Exception as e:
  31. traceback.print_stack(e)
  32. if __name__ == "__main__":
  33. while True:
  34. main()
  35. close_connection()
  36. time.sleep(1)