From de4dfcd047f151ab4ae098371362dfa8297d7381 Mon Sep 17 00:00:00 2001 From: Laurent Clouet Date: Wed, 7 Aug 2019 17:02:52 +0200 Subject: [PATCH] Remove blend files after the render has started --- src/com/sheepit/client/Client.java | 6 ++++++ src/com/sheepit/client/Job.java | 12 +++++++++++- src/com/sheepit/client/Server.java | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/com/sheepit/client/Client.java b/src/com/sheepit/client/Client.java index f56233c..93ff804 100644 --- a/src/com/sheepit/client/Client.java +++ b/src/com/sheepit/client/Client.java @@ -627,6 +627,8 @@ public class Client { } return err; } + + removeSceneDirectory(ajob); return Error.Type.OK; } @@ -699,6 +701,10 @@ public class Client { return true; } + + protected void removeSceneDirectory(Job ajob) { + Utils.delete(new File(ajob.getSceneDirectory())); + } protected int prepareWorkingDirectory(Job ajob) throws FermeExceptionNoSpaceLeftOnDevice { int ret; diff --git a/src/com/sheepit/client/Job.java b/src/com/sheepit/client/Job.java index c5274f3..7ec883f 100644 --- a/src/com/sheepit/client/Job.java +++ b/src/com/sheepit/client/Job.java @@ -70,10 +70,14 @@ public class Job { private boolean serverBlockJob; private Gui gui; private Configuration config; + private Client client; private Log log; + + private boolean directoryRemoved; - public Job(Configuration config_, Gui gui_, Log log_, String id_, String frame_, String path_, boolean use_gpu, String command_, String script_, String sceneMd5_, String rendererMd5_, String name_, String password_, String extras_, boolean synchronous_upload_, String update_method_) { + public Job(Configuration config_, Client client_, Gui gui_, Log log_, String id_, String frame_, String path_, boolean use_gpu, String command_, String script_, String sceneMd5_, String rendererMd5_, String name_, String password_, String extras_, boolean synchronous_upload_, String update_method_) { config = config_; + client = client_; id = id_; numFrame = frame_; path = path_; @@ -94,6 +98,7 @@ public class Job { serverBlockJob = false; log = log_; render = new RenderProcess(); + directoryRemoved = false; } public void block() { @@ -371,6 +376,11 @@ public class Job { } return error; } + + if (directoryRemoved == false && (process.getMemoryUsed() > 0 || process.getRemainingDuration() > 0)) { + client.removeSceneDirectory(this); + directoryRemoved = true; + } } input.close(); } diff --git a/src/com/sheepit/client/Server.java b/src/com/sheepit/client/Server.java index f170175..741048e 100644 --- a/src/com/sheepit/client/Server.java +++ b/src/com/sheepit/client/Server.java @@ -464,6 +464,7 @@ public class Server extends Thread implements HostnameVerifier, X509TrustManager Job a_job = new Job( this.user_config, + this.client, this.client.getGui(), this.client.getLog(), job_node.getAttribute("id"),