ADD logging & ADD map of jobs and Uuids

This commit is contained in:
2025-05-08 18:57:36 +02:00
parent da5d2ef853
commit 920bcc32b1
4 changed files with 47 additions and 22 deletions

View File

@@ -1,38 +1,49 @@
package com.ddf.vodsystem.services;
import com.ddf.vodsystem.entities.Job;
import com.ddf.vodsystem.entities.JobStatus;
import jakarta.annotation.PostConstruct;
import org.springframework.stereotype.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.LinkedList;
@Service
public class JobService {
private LinkedList<Job> jobs = new LinkedList<>();
private static final Logger logger = LoggerFactory.getLogger(JobService.class);
private final HashMap<String, Job> jobs = new HashMap<>();
private final LinkedList<Job> jobQueue = new LinkedList<>();
public void addJob(Job job) {
jobs.add(job);
public void add(Job job) {
logger.info("Added job: {}", job.getUuid());
jobs.put(job.getUuid(), job);
}
public Job getNextJob() {
return jobs.remove();
public Job get(String uuid) {
return jobs.get(uuid);
}
public Job getJob(String uuid){
for (Job job : jobs) {
if(job.getUuid().equals(uuid)){
return job;
}
public void jobReady(String uuid) {
Job job = jobs.get(uuid);
if (job == null) {
throw new RuntimeException("Job not found");
}
throw new RuntimeException("UUID not found");
logger.info("Job ready: {}", job.getUuid());
job.setStatus(JobStatus.PENDING);
jobQueue.add(job);
}
@PostConstruct
public void startProcessingLoop() {
Thread thread = new Thread(() -> {
while (true) {
if (!jobs.isEmpty()) {
Runnable task = getNextJob();
if (!jobQueue.isEmpty()) {
Runnable task = jobQueue.poll();
task.run(); // Execute the task
}

View File

@@ -17,8 +17,7 @@ import java.util.UUID;
@Service
public class UploadService {
private static final String UPLOAD_DIR = "videos/";
private JobService jobService;
private final JobService jobService;
public UploadService(JobService jobService) {
this.jobService = jobService;
@@ -32,7 +31,7 @@ public class UploadService {
// add job
Job job = new Job(uuid, uploadDir);
jobService.addJob(job);
jobService.add(job);
return uuid;
}