Improvement to last commit, so that caller class names are preserved.

This commit is contained in:
CalDescent 2022-02-11 15:34:31 +00:00
parent a6aabaa7f0
commit ee1f072056
3 changed files with 40 additions and 19 deletions

View File

@ -1,7 +1,5 @@
package org.qortal.arbitrary; package org.qortal.arbitrary;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.qortal.arbitrary.exception.MissingDataException; import org.qortal.arbitrary.exception.MissingDataException;
import org.qortal.arbitrary.ArbitraryDataFile.*; import org.qortal.arbitrary.ArbitraryDataFile.*;
import org.qortal.arbitrary.misc.Service; import org.qortal.arbitrary.misc.Service;
@ -12,8 +10,6 @@ import java.io.IOException;
public class ArbitraryDataBuildQueueItem extends ArbitraryDataResource { public class ArbitraryDataBuildQueueItem extends ArbitraryDataResource {
private static final Logger LOGGER = LogManager.getLogger(ArbitraryDataBuildQueueItem.class);
private final Long creationTimestamp; private final Long creationTimestamp;
private Long buildStartTimestamp = null; private Long buildStartTimestamp = null;
private Long buildEndTimestamp = null; private Long buildEndTimestamp = null;
@ -99,15 +95,6 @@ public class ArbitraryDataBuildQueueItem extends ArbitraryDataResource {
return this.priority >= HIGH_PRIORITY_THRESHOLD; return this.priority >= HIGH_PRIORITY_THRESHOLD;
} }
public void log(String message) {
if (this.isHighPriority()) {
LOGGER.info(message);
}
else {
LOGGER.debug(message);
}
}
public void setFailed(boolean failed) { public void setFailed(boolean failed) {
this.failed = failed; this.failed = failed;
} }

View File

@ -1,5 +1,7 @@
package org.qortal.controller.arbitrary; package org.qortal.controller.arbitrary;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.qortal.arbitrary.ArbitraryDataBuildQueueItem; import org.qortal.arbitrary.ArbitraryDataBuildQueueItem;
import org.qortal.utils.NTP; import org.qortal.utils.NTP;
@ -11,6 +13,8 @@ import java.util.concurrent.Executors;
public class ArbitraryDataBuildManager extends Thread { public class ArbitraryDataBuildManager extends Thread {
private static final Logger LOGGER = LogManager.getLogger(ArbitraryDataBuildManager.class);
private static ArbitraryDataBuildManager instance; private static ArbitraryDataBuildManager instance;
private volatile boolean isStopping = false; private volatile boolean isStopping = false;
@ -102,7 +106,7 @@ public class ArbitraryDataBuildManager extends Thread {
return true; return true;
} }
queueItem.log(String.format("Added %s to build queue", queueItem)); log(queueItem, String.format("Added %s to build queue", queueItem));
// Added to queue // Added to queue
return true; return true;
@ -150,7 +154,7 @@ public class ArbitraryDataBuildManager extends Thread {
return true; return true;
} }
queueItem.log(String.format("Added %s to failed builds list", queueItem)); log(queueItem, String.format("Added %s to failed builds list", queueItem));
// Added to queue // Added to queue
return true; return true;
@ -183,4 +187,17 @@ public class ArbitraryDataBuildManager extends Thread {
public boolean getBuildInProgress() { public boolean getBuildInProgress() {
return this.buildInProgress; return this.buildInProgress;
} }
private void log(ArbitraryDataBuildQueueItem queueItem, String message) {
if (queueItem == null) {
return;
}
if (queueItem.isHighPriority()) {
LOGGER.info(message);
}
else {
LOGGER.debug(message);
}
}
} }

View File

@ -1,5 +1,7 @@
package org.qortal.controller.arbitrary; package org.qortal.controller.arbitrary;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.qortal.arbitrary.ArbitraryDataBuildQueueItem; import org.qortal.arbitrary.ArbitraryDataBuildQueueItem;
import org.qortal.arbitrary.exception.MissingDataException; import org.qortal.arbitrary.exception.MissingDataException;
import org.qortal.controller.Controller; import org.qortal.controller.Controller;
@ -13,6 +15,8 @@ import java.util.Map;
public class ArbitraryDataBuilderThread implements Runnable { public class ArbitraryDataBuilderThread implements Runnable {
private static final Logger LOGGER = LogManager.getLogger(ArbitraryDataBuilderThread.class);
public ArbitraryDataBuilderThread() { public ArbitraryDataBuilderThread() {
} }
@ -71,19 +75,19 @@ public class ArbitraryDataBuilderThread implements Runnable {
try { try {
// Perform the build // Perform the build
queueItem.log(String.format("Building %s... priority: %d", queueItem, queueItem.getPriority())); log(queueItem, String.format("Building %s... priority: %d", queueItem, queueItem.getPriority()));
queueItem.build(); queueItem.build();
this.removeFromQueue(queueItem); this.removeFromQueue(queueItem);
queueItem.log(String.format("Finished building %s", queueItem)); log(queueItem, String.format("Finished building %s", queueItem));
} catch (MissingDataException e) { } catch (MissingDataException e) {
queueItem.log(String.format("Missing data for %s: %s", queueItem, e.getMessage())); log(queueItem, String.format("Missing data for %s: %s", queueItem, e.getMessage()));
queueItem.setFailed(true); queueItem.setFailed(true);
this.removeFromQueue(queueItem); this.removeFromQueue(queueItem);
// Don't add to the failed builds list, as we may want to retry sooner // Don't add to the failed builds list, as we may want to retry sooner
} catch (IOException | DataException | RuntimeException e) { } catch (IOException | DataException | RuntimeException e) {
queueItem.log(String.format("Error building %s: %s", queueItem, e.getMessage())); log(queueItem, String.format("Error building %s: %s", queueItem, e.getMessage()));
// Something went wrong - so remove it from the queue, and add to failed builds list // Something went wrong - so remove it from the queue, and add to failed builds list
queueItem.setFailed(true); queueItem.setFailed(true);
buildManager.addToFailedBuildsList(queueItem); buildManager.addToFailedBuildsList(queueItem);
@ -102,4 +106,17 @@ public class ArbitraryDataBuilderThread implements Runnable {
} }
ArbitraryDataBuildManager.getInstance().arbitraryDataBuildQueue.remove(queueItem.getUniqueKey()); ArbitraryDataBuildManager.getInstance().arbitraryDataBuildQueue.remove(queueItem.getUniqueKey());
} }
private void log(ArbitraryDataBuildQueueItem queueItem, String message) {
if (queueItem == null) {
return;
}
if (queueItem.isHighPriority()) {
LOGGER.info(message);
}
else {
LOGGER.debug(message);
}
}
} }