batch_task.py 1007 B

123456789101112131415161718192021222324252627282930313233343536
  1. import asyncio
  2. import threading
  3. from batch_task.update_llm_intent import update_llm_intent
  4. from batch_task.update_mismatch_record import update_mismatch_record
  5. from common.log import log
  6. batch_task_event = threading.Event()
  7. async def periodically_execute(interval, func, *args, **kwargs):
  8. while True:
  9. await func(*args, **kwargs)
  10. await asyncio.sleep(interval)
  11. async def execute_task():
  12. batch_task_event.set()
  13. while batch_task_event.is_set():
  14. await update_llm_intent()
  15. await update_mismatch_record()
  16. log.info("Task executed. Sleeping for 10 seconds...")
  17. await asyncio.sleep(10)
  18. def start_batch_task():
  19. global batch_task_event
  20. if not batch_task_event.is_set():
  21. log.info("Starting task.")
  22. batch_task_event.set()
  23. asyncio.run(execute_task())
  24. # asyncio.create_task(execute_task())
  25. def stop_batch_task():
  26. global batch_task_event
  27. # 清除事件
  28. batch_task_event.clear()
  29. log.info("Stop task.")