This commit is contained in:
2025-01-27 04:34:22 +08:00
parent 348a3801df
commit 6907615658
2 changed files with 49 additions and 14 deletions

View File

@ -72,6 +72,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;
import java.util.stream.Collectors;
@Slf4j
@ -111,6 +112,8 @@ public class TaskTaskServiceImpl implements TaskService {
private VideoRepository videoRepository;
@Autowired
private OrderRepository orderRepository;
private final ReentrantLock lock = new ReentrantLock();
private RenderWorkerEntity getWorker(@NonNull WorkerAuthReqVo req) {
String accessKey = req.getAccessKey();
@ -166,13 +169,18 @@ public class TaskTaskServiceImpl implements TaskService {
} else {
updTemplateList = templateRepository.getAllEnabledTemplateList();
}
List<TaskRespVO> taskList = taskMapper.selectNotRunning();
resp.setTasks(taskList);
resp.setTemplates(updTemplateList);
taskList.forEach(task -> {
taskMapper.assignToWorker(task.getId(), worker.getId());
videoTaskRepository.clearTaskCache(task.getId());
});
try {
if (lock.tryLock(2, TimeUnit.SECONDS)) {
List<TaskRespVO> taskList = taskMapper.selectNotRunning();
resp.setTasks(taskList);
resp.setTemplates(updTemplateList);
taskList.forEach(task -> {
taskMapper.assignToWorker(task.getId(), worker.getId());
videoTaskRepository.clearTaskCache(task.getId());
});
}
} catch (InterruptedException ignored) {
}
// return Task
return resp;
}