batch_task.py 949 B

1234567891011121314151617181920212223242526272829303132333435
  1. import asyncio
  2. import threading
  3. from concurrent.futures import ThreadPoolExecutor
  4. from batch_task.update_llm_intent import update_llm_intent
  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. log.info("Task executed. Sleeping for 10 seconds...")
  16. await asyncio.sleep(10)
  17. def start_batch_task():
  18. global batch_task_event
  19. if not batch_task_event.is_set():
  20. log.info("Starting task.")
  21. batch_task_event.set()
  22. asyncio.run(execute_task())
  23. # asyncio.create_task(execute_task())
  24. def stop_batch_task():
  25. global batch_task_event
  26. # 清除事件
  27. batch_task_event.clear()
  28. log.info("Stop task.")