123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package com.backendsys.modules.queue.controller;
- import com.backendsys.modules.common.config.security.annotations.Anonymous;
- import com.backendsys.modules.queue.entity.QueuePosition;
- import com.backendsys.modules.queue.entity.QueueRequest;
- import com.backendsys.modules.queue.service.QueueService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- @RestController
- public class QueueController {
- @Autowired
- private QueueService queueService;
- /**
- * 提交请求并加入队列
- */
- @Anonymous
- @PostMapping("/api/queue/submit")
- public String submitRequest() {
- QueueRequest request = new QueueRequest();
- int position = queueService.enqueue("taskQueue", request);
- return "Your request has been submitted. You are at position " + position + " in the queue. request id: " + request.getId();
- }
- /**
- * 启动处理队列中的请求
- */
- @Anonymous
- @GetMapping("/api/queue/startProcessing")
- public String startProcessing() {
- queueService.startProcessing("taskQueue");
- return "Processing has started.";
- }
- /**
- * 查询队列
- */
- @Anonymous
- @GetMapping("/api/queue/position")
- public String getPosition(@RequestParam String requestId) {
- QueuePosition positionInfo = queueService.getPosition("taskQueue", requestId);
- if (positionInfo.getPosition() == -1) {
- return "Request not found.";
- } else {
- return "Your request is at position " + positionInfo.getPosition() + " out of " + positionInfo.getTotal() + " in the queue.";
- }
- }
- }
|