From 920bcc32b1ed01e7abd828e4641d37a609557ccc Mon Sep 17 00:00:00 2001 From: ThisBirchWood Date: Thu, 8 May 2025 18:57:36 +0200 Subject: [PATCH] ADD logging & ADD map of jobs and Uuids --- .../java/com/ddf/vodsystem/entities/Job.java | 19 +++++++--- .../com/ddf/vodsystem/entities/JobStatus.java | 8 ++++ .../ddf/vodsystem/services/JobService.java | 37 ++++++++++++------- .../ddf/vodsystem/services/UploadService.java | 5 +-- 4 files changed, 47 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/ddf/vodsystem/entities/JobStatus.java diff --git a/src/main/java/com/ddf/vodsystem/entities/Job.java b/src/main/java/com/ddf/vodsystem/entities/Job.java index 733bd02..b8476e0 100644 --- a/src/main/java/com/ddf/vodsystem/entities/Job.java +++ b/src/main/java/com/ddf/vodsystem/entities/Job.java @@ -3,12 +3,15 @@ package com.ddf.vodsystem.entities; import lombok.Data; import java.io.File; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + @Data public class Job implements Runnable { + private static final Logger logger = LoggerFactory.getLogger(Job.class); + private String uuid; private File file; - private boolean started; - private float progress; // configs private float startPoint; @@ -16,18 +19,22 @@ public class Job implements Runnable { private float fps; private int width; private int height; + private float fileSize; + + // job status + private JobStatus status = JobStatus.PENDING; public Job(String uuid, File file) { this.uuid = uuid; this.file = file; - this.started = false; } @Override public void run() { - this.started = true; - this.progress = 0; + logger.info("Job started"); + this.status = JobStatus.RUNNING; + + this.status = JobStatus.FINISHED; - System.out.println(""); } } diff --git a/src/main/java/com/ddf/vodsystem/entities/JobStatus.java b/src/main/java/com/ddf/vodsystem/entities/JobStatus.java new file mode 100644 index 0000000..f831933 --- /dev/null +++ b/src/main/java/com/ddf/vodsystem/entities/JobStatus.java @@ -0,0 +1,8 @@ +package com.ddf.vodsystem.entities; + +public enum JobStatus { + NOT_READY, + PENDING, + RUNNING, + FINISHED +} diff --git a/src/main/java/com/ddf/vodsystem/services/JobService.java b/src/main/java/com/ddf/vodsystem/services/JobService.java index b9eeede..3ae9235 100644 --- a/src/main/java/com/ddf/vodsystem/services/JobService.java +++ b/src/main/java/com/ddf/vodsystem/services/JobService.java @@ -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 jobs = new LinkedList<>(); + private static final Logger logger = LoggerFactory.getLogger(JobService.class); + private final HashMap jobs = new HashMap<>(); + private final LinkedList 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 } diff --git a/src/main/java/com/ddf/vodsystem/services/UploadService.java b/src/main/java/com/ddf/vodsystem/services/UploadService.java index 54daa65..390647b 100644 --- a/src/main/java/com/ddf/vodsystem/services/UploadService.java +++ b/src/main/java/com/ddf/vodsystem/services/UploadService.java @@ -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; }