weverse-api/ruoyi-admin/src/main/java/com/ruoyi/web/task/RyTask.java

71 lines
2.1 KiB
Java
Raw Normal View History

2025-02-11 07:25:18 +00:00
package com.ruoyi.web.task;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.quartz.domain.SysJob;
import com.ruoyi.quartz.service.ISysJobService;
2025-02-12 06:56:32 +00:00
import com.ruoyi.system.domain.Perform;
import com.ruoyi.system.mapper.PerformMapper;
import com.ruoyi.system.service.IPerformService;
2025-02-11 07:25:18 +00:00
import org.quartz.SchedulerException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.concurrent.CompletableFuture;
/**
* 定时任务调度测试
*
* @author ruoyi
*/
@Component("ryTask")
public class RyTask {
@Autowired
private ISysJobService jobService;
2025-02-12 06:56:32 +00:00
@Autowired
private IPerformService performService;
@Autowired
private PerformMapper performMapper;
2025-02-11 07:25:18 +00:00
/**
* 抢票
*
* @param pid
*/
public void rob(Long pid, Long jobId) throws SchedulerException {
2025-02-12 06:56:32 +00:00
Perform perform = performService.selectPerformById(pid);
2025-02-11 07:25:18 +00:00
System.out.println(pid + "," + jobId);
for (int i = 0; i < 100; i++) {
System.out.println("开始");
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://example.com"))
.GET()
.build();
// 发起异步请求,但不等待结果
CompletableFuture<HttpResponse<String>> future2 = client.sendAsync(request, HttpResponse.BodyHandlers.ofString());
future2.thenAccept(response -> {
// 处理响应(例如,记录日志)
System.out.println("Response received: " + response.statusCode());
}).exceptionally(ex -> {
// 处理异常
ex.printStackTrace();
return null;
});
System.out.println("异步任务完成");
}
//执行完成停止任务
SysJob job = new SysJob();
job.setJobId(jobId);
job.setStatus("1");
jobService.changeStatus(job);
}
}