blueprint.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from quart import Blueprint, jsonify, request
  2. from applications.ab_test import GetCoverService
  3. from applications.utils import generate_task_trace_id
  4. from applications.tasks import TaskScheduler, TaskManager
  5. server_blueprint = Blueprint("api", __name__, url_prefix="/api")
  6. task_manager_pool = TaskManager()
  7. print("协程管理池初始化成功")
  8. def server_routes(pools, log_service):
  9. @server_blueprint.route("/get_cover", methods=["POST"])
  10. async def get_cover():
  11. params = await request.get_json()
  12. task = GetCoverService(pools, params)
  13. return jsonify(await task.deal())
  14. @server_blueprint.route("/run_task", methods=["POST"])
  15. async def run_task():
  16. trace_id = generate_task_trace_id()
  17. data = await request.get_json()
  18. task_scheduler = TaskScheduler(task_manager_pool, data, log_service, pools, trace_id)
  19. response = await task_scheduler.deal()
  20. return jsonify(response)
  21. @server_blueprint.route("/health", methods=["GET"])
  22. async def hello_world():
  23. # data = await request.get_json()
  24. return jsonify({"message": "hello world"})
  25. @server_blueprint.route("/list_tasks", methods=["GET"])
  26. async def list_tasks():
  27. return jsonify(task_manager_pool.list())
  28. @server_blueprint.route("/cancel_task", methods=["POST"])
  29. async def cancel_task():
  30. data = await request.get_json()
  31. task_id = data["task_id"]
  32. flag = await task_manager_pool.cancel(task_id)
  33. message = f"Task {task_id} canceled {'successfully' if flag else 'failed'}"
  34. return jsonify({
  35. "message": message
  36. })
  37. return server_blueprint